VBA – Textdatei zeilenweise lesen

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on Dezember 24, 2022

In diesem Tutorial zeigen wir Ihnen, wie Sie den Inhalt von Textdateien mit VBA zeilenweise einlesen können.

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

Textdatei zeilenweise lesen

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

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

Sub DateiLesen()
   Dim strDatei As String, strZeile As String
   strDatei = "C:\Test\TestDatei.txt"
   Open strDatei For Input As #1
   Do Until EOF(1)
      Line Input #1, strZeile
      ActiveCell = strZeile
      ActiveCell.Offset(1, 0).Select
   Loop
   Close #1
End Sub

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

vba textdatei zeilenweise lesen

Wir können auch eine Textdatei in VBA lesen, indem wir das FileSystemObject verwenden. Im folgenden Code haben wir eine späte Bindung mit dem FileSystemObject verwendet. Sie können auch einen Verweis auf dieses Objekt in Ihrem VBA-Projekt erstellen. Weitere Informationen finden Sie hier.

Sub TextDateiLesen()
  Dim strZeile As String
  Dim FSO as Object
  Dim TSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set TSO = FSO.OpenTextFile("C:\Test\TestDatei.txt")
  Do While Not TSO.AtEndOfStream
     strZeile = TSO.ReadLine
     ActiveCell = strZeile
     ActiveCell.Offset(1, 0).Select
  Loop
  TSO.Close
  Set TSO = Nothing
  Set FSO = Nothing
End Sub

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

Sub TextdateiMitTrennzeichenLesen()
  Dim StrZeile As String
  Dim FSO As New FileSystemObject
  Dim TSO As Object
  Dim StrZeilenElemente As Variant
  Dim Index As Long
  Dim i As Long
  Dim Trennzeichen As String
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set TSO = FSO.OpenTextFile("C:\Test\TestDatei.txt")
  Trennzeichen = ","
  Index = 1
  Do While TSO.AtEndOfStream = False
    StrZeile = TSO.ReadLine
    StrZeilenElemente = Split(StrZeile, Trennzeichen)
    For i = LBound(StrZeilenElemente) To UBound(StrZeilenElemente)
       Cells(Index, i + 1).Value = StrZeilenElemente(i)
    Next i
    Index = Index + 1
  Loop
  TSO.Close
  Set TSO = Nothing
  Set FSO = Nothing
End Sub

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

textdatei mit trennzeichen zeilenweise lesen

vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples