VBA - Metin Dosyasını Satır Satır Oku

Bu eğitim, metin dosyalarından içeriğin VBA ile satır satır nasıl okunacağını gösterecektir.

Metin dosyasını bir dosyanın tamamı olarak veya satır satır okuyabiliriz.

Metin Dosyasını Satır Satır Oku

Bir metin dosyasındaki metin, genellikle sınırlayıcılarla ayrılmış birkaç satırdan oluşur. Bunlar virgül (“,”), boşluklu virgül (“, “), noktalı virgül (“;”), boşluklu noktalı virgül (“; “), boşluk (“ “), sekme (vbTab) olabilir. ) veya nadir durumlarda tilde (~) gibi başka herhangi bir karakter. Satırlar normalde bir satır sonu (vbCRLF) ile ayrılır.

Bir metin dosyasını VBA'daki Çalışma Sayfamıza satır satır okumanın en kolay yolu, metnin yerleştirilmesini istediğimiz ilk hücreyi seçmek ve ardından aşağıdaki kodu çalıştırmaktır:

1234567891011 Sub ReadFile()Dim strFile As String, strLine As StringstrFile = "C:\Test\TestFile.txt"Giriş için strFile'ı #1 Olarak AçınEOF(1)'e Kadar YapınHat Girişi #1, strLineActiveCell = strLineActiveCell.Offset(1, 0).SeçDöngü#1'i kapatAlt Bitiş

Bu, metin dosyasının her satırını Excel'de tek bir hücreye yerleştirecektir.

FileSystemObject kullanarak VBA'da bir metin dosyasını da okuyabiliriz. Aşağıdaki kodda File System Object ile geç bağlama kullandık. Ayrıca VBA projenizde buna bir referans oluşturabilirsiniz. Daha fazla bilgi için buraya bakın.

123456789101112131415 Sub ReadTextFile()Dize Olarak Dim strLineNesne olarak FSO'yu karartNesne Olarak İSO'yu KarartFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")TSO = FSO.OpenTextFile("C:\Test\TestFile.txt") olarak ayarlayınTSO.AtEndOfStream Değilken YapınstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset(1, 0).SeçDöngüTSO.KapatTSO'yu ayarla = Hiçbir şeyFSO'yu Ayarla = Hiçbir ŞeyAlt Bitiş

Çizgileri sınırlayıcılarına göre hücrelere ayırmak istiyorsak, biraz daha karmaşık bir döngü oluşturabiliriz. Burada kodda erken bağlama kullandık ve Dosya Sistemi Nesnesini ilan ettik.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators()Dize Olarak Dim StrLineFSO'yu Yeni FileSystemObject Olarak DimNesne Olarak İSO'yu KarartDim StrLineElements Varyant OlarakDim Index As LongDim kadar uzunDize Olarak Dim SınırlayıcıFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")TSO = FSO.OpenTextFile("C:\Test\TestFile.txt") olarak ayarlayınSınırlayıcı = ","dizin = 1TSO.AtEndOfStream = False iken yapınStrLine = TSO.ReadLineStrLineElements = Böl(StrLine, Sınırlayıcı)i = LBound(StrLineElements) için UBound(StrLineElements) içinCells(Index, i + 1).Value = StrLineElements(i)sonraki benİndeks = İndeks + 1DöngüTSO.KapatTSO'yu ayarla = Hiçbir şeyFSO'yu Ayarla = Hiçbir ŞeyAlt Bitiş

Bu, aşağıdaki grafiğe göre satırların Excel'de ayrı hücrelere ayrılmasına neden olacaktır.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave