/ / Læs data fra en tekstfil ved hjælp af Excel VBA

Læs data fra en tekstfil ved hjælp af Excel VBA

Nedenfor vil vi se på et program i Excel VBA at læser data fra en tekstfil. Denne fil indeholder nogle geografiske koordinater, vi vil importere til Excel.

Situation:

Læs data fra tekstfil ved hjælp af Excel VBA

1. Download først tekstfilen og tilføj den til "C: test"

Placer en kommandoknap på dit regneark og tilføj følgende kodelinjer:

2. Vi erklærer fire variabler. myFile of Type String, tekst af type String, tekstlinje af type String, posLat af type Integer og posLong af type Integer.

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

3. Vi skal initialisere variablen myFile med den fulde sti og filnavnet.

myFile = "C:testgeographical-coordinates.txt"

eller

brug GetOpenFilename-metoden i Applikationsobjektet til at vise den standard åbne dialogboks og vælg filen (uden at åbne filen faktisk).

myFile = Application.GetOpenFilename()

Bemærk: Den tomme del mellem parenteserne betyder, at vi ikke giver Excel VBA noget som input. Placer markøren på GetOpenFilename i Visual Basic Editor og klik på F1 for at få hjælp til argumenterne.

4. Tilføj følgende kode linje:

Open myFile For Input As #1

Bemærk: Denne sætning gør det muligt at læse filen. Vi kan henvise til filen som # 1 under resten af ​​vores kode.

5. Tilføj følgende kode linjer:

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

Bemærk: Indtil slutningen af ​​filen (EOF) læser Excel VBA en enkelt linje fra filen og tildeler den til tekstlinje. Vi bruger & operatøren til at sammenkæde (deltage) alle de enkelte linjer og gemme den i variabelteksten.

6. Luk filen.

Close #1

7. Næste, vi søger efter positionen af ​​ordene breddegrad og længdegrad i variabelteksten. Vi bruger Instr funktionen.

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

8. Vi bruger disse positioner og Mid-funktionen til at uddrage koordinaterne fra den variable tekst og skrive koordinaterne til celle A1 og celle A2.

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

9. Test programmet.

Resultat:

Læs data fra tekstfilresultat

Læs også: