Lesen von Daten aus einer Textdatei mit Excel VBA
Im Folgenden werden wir ein Programm in Excel VBA suchen, die Daten aus einer Textdatei liest. Diese Datei enthält einige geographische Koordinaten wir den Import in Excel möchten.
Situation:
-
Laden Sie zuerst die Textdatei, und fügen Sie „C: \ test \“
Platzieren Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:
-
Wir erklären vier Variablen. myFile vom Typ String, Text vom Typ String, Textzeilen 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
-
Wir müssen die Variable myFile mit dem vollständigen Pfad und den Dateinamen initialisieren.
myFile = "C:\test\geographical-coordinates.txt"
oder die GetOpenFilename Verfahren des Anwendungsobjekts verwenden, um das Standard-Öffnen-Dialogfeld anzuzeigen, und wählen Sie die Datei (ohne die Datei tatsächlich zu öffnen).
myFile = Application.GetOpenFilename()
Hinweis: der leere Teil zwischen den Klammern bedeutet, dass wir geben Excel VBA nichts als Eingabe. Setzen Sie den Cursor auf GetOpenFilename in Visual Basic-Editor und klicken Sie auf F1, um Hilfe zu den Argumenten.
-
Folgende Codezeile hinzu:
Open myFile For Input As #1
Hinweis: Diese Anweisung ermöglicht die Datei gelesen werden. Wir können als # 1 während der Rest unseres Code in die Datei verweisen.
-
Die folgenden Codezeilen hinzu:
Do Until EOF(1) Line Input #1, textline text = text & textline Loop
Anmerkung: bis zum Ende der Datei (EOF), Excel VBA liest eine Zeile aus der Datei und ordnet sie Textzeile. Wir verwenden den Operator & verketten (verbinden) alle einzelnen Linien und speichern sie in den variablen Text.
-
Schließen Sie die Datei.
Close #1
-
Als nächstes suchen wir für die Position der Worte Breite und Länge in dem variablen Text. Wir verwenden die Funktion Instr.
posLat = InStr(text, "latitude") posLong = InStr(text, "longitude")
-
Wir verwenden diese Positionen und die mittlere Funktion, um die Koordinaten aus dem variablen Text zu extrahieren, und die Koordinaten schreiben A1 und A2 Zelle Zelle.
Range("A1").Value = Mid(text, posLat + 10, 5) Range("A2").Value = Mid(text, posLong + 11, 5)
-
Testen Sie das Programm.
Ergebnis: