Lesen Sie eine Textdatei Zeile für Zeile in VBA
-
Verwenden Sie
Öffnen
, um eine Textdatei Zeile für Zeile in VBA zu lesen -
Verwenden Sie
FileSystemObject
mitTextStream
, um eine Textdatei Zeile für Zeile in VBA zu lesen - Abschluss
Sie möchten alle in einer Datei gespeicherten E-Mails zur Weiterverarbeitung nach Microsoft Excel übertragen? Oder möchten Sie die Informationen einiger in die engere Wahl gezogener Kandidaten in einer Datei aufbewahren?
All diese Aufgaben können Sie mit Hilfe einfacher automatisierter Programme effizient erledigen.
Das Lesen einer Textdatei in einem Programm ist vernünftigerweise notwendig. Fast jeder andere Code erfordert die Eingabe aus einer Datei oder die Ausgabe in eine Datei; Daher ist es wichtig zu verstehen, wie man eine ganze Datei Zeile für Zeile, Zeichen für Zeichen usw. liest.
Dieser Artikel betont das Lesen einer Textdatei Zeile für Zeile. Sie können die verschiedenen Methoden zum Lesen einer Textdatei weiter erkunden und sie entsprechend den Anforderungen implementieren.
Verwenden Sie Öffnen
, um eine Textdatei Zeile für Zeile in VBA zu lesen
Es gibt nur wenige verschiedene VBA-Optionen zum Öffnen oder Schließen einer Datei. Es sind nur wenige Befehle zum Öffnen und Schließen einer Arbeitsmappe, Datei oder eines Ordners verfügbar.
Es folgt ein Codeausschnitt, der eine Datei öffnet und die gesamte Datei Zeile für Zeile durchliest.
Sub example()
Dim FileNumber As Integer
Dim Data As String
FileNumber = FreeFile()
Open "Filename" For Input As #FileNumber
While Not EOF(1)
Line Input #FileNumber, Data
//Read a data line from the file
//Perform any required actions on the file
Wend
Close #FileNumber
End Sub
Das oben erwähnte Programm ist ein einfaches Code-Snippet, mit dem Sie eine Datei öffnen, Daten daraus lesen und schließen können. Es deklariert die Variablen FileNumber
und Data
im gesamten Code.
Um die FileNumber
zu erhalten, wird die Funktion FreeFile()
verwendet. Die Funktion FreeFile()
gibt die nächste verfügbare Dateinummer zum Öffnen der Datei zurück.
Die von der Funktion FreeFile()
zurückgegebene FileNumber
wird im gesamten Programm verwendet, um die Datei zu öffnen, daraus zu lesen und sie zu schliessen.
Hinweis: Es ist wichtig, jede Datei zu schließen, die während des gesamten Programms geöffnet wird.
Nachdem die FileNumber
von der FreeFile()
-Funktion zurückgegeben wurde, wird die Open
-Anweisung verwendet, um die Datei zu öffnen. Es nimmt den Dateinamen für Input
oder Output
und verwendet die nächste verfügbare FileNumber
.
Innerhalb der While
-Schleife wird die Datei zeilenweise gelesen, bis das Dateiende nicht erreicht ist: While Not EOF(FileNumber)
. Die Schleife liest die Daten Zeile für Zeile und speichert den Datenstrom in der Variablen Data
.
Sie können die Codeanweisungen innerhalb der While
-Schleife hinzufügen, wenn Sie eine Aktion mit den Daten ausführen möchten.
Da die Datei in diesem Programm für Input
geöffnet wird, werden innerhalb der While
-Schleife Daten daraus gelesen. Wenn der Benutzer die Daten im Modus Ausgabe
öffnet, kann die folgende Anweisung verwendet werden, um die Daten in die Datei zu schreiben:
Write #FileNumber, "This is a sample data"
Mit obigem Befehl wird die Aussage Dies sind Beispieldaten
in die Datei geschrieben.
Verwenden Sie FileSystemObject
mit TextStream
, um eine Textdatei Zeile für Zeile in VBA zu lesen
Die zweite Lösung erfordert einen Verweis auf Microsoft Scripting Runtime. Es wird der Datentyp FileSystemObject
verwendet, der das Durchlesen von Dateien ermöglicht.
Hier ist ein Code-Snippet, um eine Datei Zeile für Zeile zu lesen:
Dim fso As FileSystemObject: Set fso = New FileSystemObject
Set txtStream = fso.OpenTextFile(filePath, ForReading, False)
Do While Not txtStream.AtEndOfStream
txtStream.ReadLine
Loop
txtStream.Close
Ein FileSystemObject
namens fso
wird deklariert und in der ersten Zeile gesetzt. Die Variable txtStream
ist ein TextStream
-Objekt, das zurückgegeben wird, wenn die Datei zum Lesen geöffnet wird.
Ein TextStream
-Objekt ermöglicht es dem Benutzer, die Datei im Lese-, Schreib- oder Anhängemodus zu öffnen.
Eine Do While
-Schleife wird verwendet, um die Datei Zeile für Zeile zu parsen. Das Ende der Datei wird durch txtStream.AtEndOfStream
überprüft und die Datei mit dem Befehl ReadLine
gelesen.
Das Code-Snippet erwähnt, wie eine Datei Zeile für Zeile bis zum Ende gelesen wird. Wenn Sie eine Zeile in die Datei schreiben möchten, verwenden Sie TextStreamObject.WriteLine
, um den Text in die Datei auszugeben.
Am Ende des Programms wird die zum Lesen geöffnete Datei geschlossen.
Hinweis: Die Datei kann jeweils in einem Modus geöffnet werden; der Benutzer kann nicht in demselben Dateiobjekt schreiben und lesen. Um Dateien in verschiedenen Modi zu öffnen, müssen verschiedene Objekte erstellt werden.
Abschluss
Mit einfachen VBA-Anweisungen können Sie problemlos eine Datei öffnen, aus der Datei lesen, in die Datei schreiben und die Datei schließen. Sie können Makros verwenden, um dieselbe Aufgabe für verschiedene Dateien auszuführen; Daher ist die Automatisierungsleistung von Microsoft Office unglaublich und lobenswert.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub