VBA - Szövegfájl olvasása soronként

Ez az oktatóanyag bemutatja, hogyan lehet szöveges fájlok tartalmát soronként olvasni a VBA -val.

A szövegfájlt vagy teljes fájlként, vagy soronként olvashatjuk.

Szövegfájl olvasása soronként

A szövegfájl szövege általában több sorból áll, elválasztójelekkel elválasztva. Ezek lehetnek vessző (","), vessző szóközzel (","), pontosvessző (";"), pontosvessző szóközzel (";"), szóköz (""), tab (vbTab ) vagy ritka esetekben bármely más karakter, például tilde (~). A vonalakat rendszerint egy sortörés választja el egymástól (vbCRLF).

A legegyszerűbb módja annak, hogy egy szöveges fájlt soronként olvassunk be a VBA -munkalapunkba, ha kiválasztjuk az első cellát, ahová a szöveget be akarjuk helyezni, majd futtatjuk a következő kódot:

1234567891011 Sub ReadFile ()Dim strFile mint karakterlánc, strLine mint karakterláncstrFile = "C: \ Test \ TestFile.txt"Nyissa meg az strFile fájlt az 1. bemenethezEOF -ig (1)1. sor bemenet, strLineActiveCell = strLineActiveCell.Offset (1, 0). Válassza kiHurokBezárás #1End Sub

Ezzel a szövegfájl minden sora egyetlen cellába kerül az Excelben.

Szöveges fájlt is olvashatunk a VBA -ban a FileSystemObject használatával. Az alábbi kódban késői kötést használtunk a fájlrendszer objektumhoz. Hivatkozást is létrehozhat rá a VBA projektben. További információért lásd itt.

123456789101112131415 Sub ReadTextFile ()Dim strLine mint karakterláncDim FSO mint ObjectDim TSO mint ObjectSet FSO = CreateObject ("Scripting.FileSystemObject")Állítsa be a TSO = FSO.OpenTextFile fájlt ("C: \ Test \ TestFile.txt")Do Do Not TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0). Válassza kiHurokTSO. Zárja beTSO beállítása = semmiFSO beállítása = semmiEnd Sub

Kicsit bonyolultabb hurkot hozhatunk létre, ha a sorokat a határolóikkal akarjuk cellákra választani. Itt a korai kötést használtuk a kódban, és deklaráltuk a fájlrendszer -objektumot.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine karakterlánckéntHalvány FSO új fájlrendszer -objektumkéntDim TSO mint ObjectDim StrLineElements as VariantDim Index As LongDim i As LongHalvány határoló karakterlánckéntSet FSO = CreateObject ("Scripting.FileSystemObject")Állítsa be a TSO = FSO.OpenTextFile fájlt ("C: \ Test \ TestFile.txt")Elválasztó = ","Index = 1Do while TSO.AtEndOfStream = HamisStrLine = TSO.ReadLineStrLineElements = Osztott (StrLine, elválasztó)For i = LBound (StrLineElements) to UBound (StrLineElements)Cella (index, i + 1). Érték = StrLineElements (i)Következő iIndex = Index + 1HurokTSO. Zárja beTSO beállítása = semmiFSO beállítása = semmiEnd Sub

Ennek eredményeként a sorok az Excel különálló celláira lesznek szétválasztva az alábbi ábra szerint.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave