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

Indholdsfortegnelse

Nedenfor ser vi 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:

1. Først skal du downloade tekstfilen og tilføje den til "C: \ test \"

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

2. Vi erklærer fire variabler. myFile af 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 hele stien og filnavnet.

myFile = "C: \ test \ geografisk-koordinater.txt"

eller

Brug GetOpenFilename -metoden i applikationsobjektet til at vise standarddialogboksen Åbn og vælg filen (uden egentlig at åbne filen).

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 kodelinje:

Åbn myFile til input som #1

Bemærk: denne erklæring gør det muligt at læse filen. Vi kan referere til filen som #1 under resten af ​​vores kode.

5. Tilføj følgende kodelinjer:

Gør indtil EOF (1)
Linjeindgang #1, tekstlinje
tekst = tekst & tekstlinje
Sløjfe

Bemærk: indtil slutningen af ​​filen (EOF) læser Excel VBA en enkelt linje fra filen og tildeler den tekstlinjen. Vi bruger operatøren & til at sammenkoble (sammenføje) alle de enkelte linjer og gemme den i den variable tekst.

6. Luk filen.

Luk #1

7. Dernæst søger vi efter placeringen af ​​ordene breddegrad og længdegrad i den variable tekst. Vi bruger Instr -funktionen.

posLat = InStr (tekst, "breddegrad")
posLong = InStr (tekst, "længdegrad")

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

Område ("A1"). Værdi = Midt (tekst, posLat + 10, 5)
Område ("A2"). Værdi = Midt (tekst, posLong + 11, 5)

9. Test programmet.

Resultat:

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave