In diesem Tutorial wird gezeigt, wie Sie eine Textdatei in VBA in eine Zeichenfolge einlesen.
Wir können die Textdatei entweder zeilenweise oder als ganze Datei lesen.
Eine ganze Textdatei in einen String einlesen
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 ganze Textdatei in VBA zu lesen, besteht darin, den folgenden Code auszuführen, der den gesamten Inhalt der Textdatei in eine Zeichenfolgenvariable ablegt. Dieses Verfahren verwendet die VBA Open-Anweisung und die VBA FreeFile-Funktion.
12345678910 | Unter ReadFile()iTxtFile als Integer dimmenDim strFile As StringDim strFileText As StringstrFile = "C:\Test\TestFile.txt"iTxtFile = FreeFilestrFile zur Eingabe als FreeFile öffnenstrFileText = Input(LOF(iTxtFile), iTxtFile)iTxtFile schließenEnd Sub |
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.
1234567891011 | Unter ReadTextFile()Dim strText als StringFSO als Objekt dimmenTSO als Objekt dimmenFSO setzen = CreateObject("Scripting.FileSystemObject")Set TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")strText = TSO.ReadAllÜNB.SchließenTSO = Nichts setzenFSO = Nichts setzenEnd Sub |
Wir können auch eine frühe Bindung im Code verwenden und das Dateisystemobjekt deklarieren, indem wir in unserem Excel-Projekt einen Verweis auf das Dateisystemobjekt erstellen.
1234567891011 | Unter ReadTextFile()Dim strText als StringDim FSO als neues FileSystemObjectTSO als Objekt dimmenFSO setzen = CreateObject("Scripting.FileSystemObject")Set TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")strText = TSO.ReadAllÜNB.SchließenTSO = Nichts setzenFSO = Nichts setzenEnd Sub |