Lesen Sie eine Textdatei Zeile für Zeile in VBA

Bilal Shahid 21 Juni 2023
  1. Verwenden Sie Öffnen, um eine Textdatei Zeile für Zeile in VBA zu lesen
  2. Verwenden Sie FileSystemObject mit TextStream, um eine Textdatei Zeile für Zeile in VBA zu lesen
  3. Abschluss
Lesen Sie eine Textdatei Zeile für Zeile in VBA

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.

Bilal Shahid avatar Bilal Shahid avatar

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

Verwandter Artikel - VBA File