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.