VBA - Textdatei Zeile für Zeile lesen

In diesem Tutorial wird gezeigt, wie Sie mit VBA zeilenweise Inhalte aus Textdateien lesen.

Wir können die Textdatei entweder als ganze Datei oder Zeile für Zeile lesen.

Textdatei Zeile für Zeile lesen

Text in einer Textdatei besteht normalerweise aus mehreren Zeilen, die durch Trennzeichen getrennt sind. Dies können ein Komma („,“), ein Komma mit Leerzeichen („,“) sein, ein Semikolon („;“), ein Semikolon mit Leerzeichen („;“), ein Leerzeichen („“), ein Tabulator (vbTab ) oder in seltenen Fällen ein anderes Zeichen wie eine Tilde (~). Die Zeilen werden normalerweise durch einen Zeilenumbruch (vbCRLF) getrennt.

Der einfachste Weg, eine Textdatei Zeile für Zeile in unser Arbeitsblatt in VBA einzulesen, besteht darin, die erste Zelle auszuwählen, in die der Text eingefügt werden soll, und dann den folgenden Code auszuführen:

1234567891011 Unter ReadFile()Dim strFile As String, strLine As StringstrFile = "C:\Test\TestFile.txt"Öffnen Sie strFile für die Eingabe als # 1Bis EOF erledigen(1)Line-Eingang 1, strLineActiveCell = strLineActiveCell.Offset(1, 0).WählenSchleifeSchließen #1End Sub

Dadurch wird jede Zeile der Textdatei in eine einzelne Zelle in Excel eingefügt.

Wir können auch eine Textdatei in VBA lesen, indem wir das FileSystemObject verwenden. Im folgenden Code haben wir Late Binding mit dem File System Object verwendet. Sie können auch in Ihrem VBA-Projekt einen Verweis darauf erstellen. Weitere Informationen finden Sie hier.

123456789101112131415 Unter ReadTextFile()Dim strLine als StringFSO als Objekt dimmenTSO als Objekt dimmenFSO setzen = CreateObject("Scripting.FileSystemObject")Set TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")Tun Sie, während nicht TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset(1, 0).WählenSchleifeÜNB.SchließenTSO = Nichts setzenFSO = Nichts setzenEnd Sub

Wir können eine etwas kompliziertere Schleife erstellen, wenn wir die Zeilen durch ihre Trennzeichen in Zellen trennen möchten. Hier haben wir die frühe Bindung im Code verwendet und das File System Object deklariert.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators()Dim StrLine As StringDim FSO als neues FileSystemObjectTSO als Objekt dimmenDim StrLineElements als VarianteDim Index As LongDim ich so langDim-Trennzeichen als ZeichenfolgeFSO setzen = CreateObject("Scripting.FileSystemObject")Set TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")Trennzeichen = ","Index = 1Do While TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Split(StrLine, Delimiter)For i = LBound(StrLineElements) To UBound(StrLineElements)Zellen(Index, i + 1).Wert = StrLineElements(i)Als nächstesIndex = Index + 1SchleifeÜNB.SchließenTSO = Nichts setzenFSO = Nichts setzenEnd Sub

Dies führt dazu, dass die Zeilen in Excel wie in der folgenden Grafik in einzelne Zellen unterteilt werden.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave