/ / Lesen von Daten aus einer Textdatei mit Excel VBA

Lesen Sie Daten aus einer Textdatei mit Excel VBA

Unten sehen wir uns ein Programm in Excel VBA Das liest Daten aus einer Textdatei. Diese Datei enthält einige geografische Koordinaten, die wir in Excel importieren möchten.

Situation:

Lesen Sie Daten aus Textdatei mit Excel VBA

1. Laden Sie zuerst die Textdatei herunter und fügen Sie sie zu "C: test" hinzu.

Fügen Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt ein, und fügen Sie die folgenden Codezeilen hinzu:

2. Wir deklarieren vier Variablen. myFile vom Typ String, Text vom Typ String, textline vom Typ String, posLat vom Typ Integer und posLong vom Typ Integer.

Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer

3. Wir müssen die Variable myFile mit dem vollständigen Pfad und dem Dateinamen initialisieren.

myFile = "C:testgeographical-coordinates.txt"

oder

Verwenden Sie die GetOpenFilename-Methode des Application-Objekts, um das Standarddialogfeld Öffnen anzuzeigen, und wählen Sie die Datei aus (ohne die Datei tatsächlich zu öffnen).

myFile = Application.GetOpenFilename()

Hinweis: Der leere Teil zwischen den Klammern bedeutet, dass wir Excel VBA nichts als Eingabe geben. Platzieren Sie den Cursor auf GetOpenFilename im Visual Basic-Editor und klicken Sie auf F1, um Hilfe zu den Argumenten zu erhalten.

4. Fügen Sie die folgende Codezeile hinzu:

Open myFile For Input As #1

Hinweis: Diese Anweisung ermöglicht das Lesen der Datei. Wir können die Datei während des restlichen Codes als # 1 bezeichnen.

5. Fügen Sie die folgenden Codezeilen hinzu:

Do Until EOF(1)
    Line Input #1, textline
    text = text & textline
Loop

Hinweis: Bis zum Ende der Datei (EOF) liest Excel VBA eine einzelne Zeile aus der Datei und weist sie der Textzeile zu. Wir verwenden den Operator & zum Verketten (Verbinden) aller einzelnen Zeilen und Speichern dieser im variablen Text.

6. Schließen Sie die Datei.

Close #1

7. Als nächstes suchen wir nach der Position der Wörter Breite und Länge im variablen Text. Wir benutzen die Instr-Funktion.

posLat = InStr(text, "latitude")
posLong = InStr(text, "longitude")

8. Wir verwenden diese Positionen und die Mid-Funktion, um die Koordinaten aus dem variablen Text zu extrahieren und die Koordinaten in Zelle A1 und Zelle A2 zu schreiben.

Range("A1").Value = Mid(text, posLat + 10, 5)
Range("A2").Value = Mid(text, posLong + 11, 5)

9. Testen Sie das Programm.

Ergebnis:

Lesen Sie die Daten aus dem Textdatei-Ergebnis

Lesen Sie auch: