Läs data från en textfil med Excel VBA - enkla Excel -makron

Innehållsförteckning

Nedan kommer vi att titta på ett program i Excel VBA det där läser data från en textfil. Den här filen innehåller några geografiska koordinater som vi vill importera till Excel.

Situation:

1. Ladda först ner textfilen och lägg till den i "C: \ test \"

Placera en kommandoknapp på ditt kalkylblad och lägg till följande kodrader:

2. Vi deklarerar fyra variabler. myFile of type String, text of type String, textline of type String, posLat of type Integer, and posLong of type Integer.

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

3. Vi måste initialisera variabeln myFile med hela sökvägen och filnamnet.

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

eller

använd metoden GetOpenFilename för Application -objektet för att visa standarddialogrutan Öppna och välj filen (utan att faktiskt öppna filen).

myFile = Application.GetOpenFilename ()

Obs: den tomma delen mellan parenteserna betyder att vi inte ger Excel VBA något som input. Placera markören på GetOpenFilename i Visual Basic Editor och klicka på F1 för att få hjälp med argumenten.

4. Lägg till följande kodrad:

Öppna myFile för inmatning som #1

Obs! Detta uttalande gör att filen kan läsas. Vi kan referera till filen som #1 under resten av vår kod.

5. Lägg till följande kodrader:

Gör tills EOF (1)
Radinmatning #1, textrad
text = text & textrad
Slinga

Obs! Fram till slutet av filen (EOF) läser Excel VBA en enda rad från filen och tilldelar den textrad. Vi använder operatorn & för att sammanfoga (sammanfoga) alla enskilda rader och lagra det i variabeltexten.

6. Stäng filen.

Stäng #1

7. Därefter söker vi efter orden latitud och longitud i variabeltexten. Vi använder Instr -funktionen.

posLat = InStr (text, "latitud")
posLong = InStr (text, "longitud")

8. Vi använder dessa positioner och Mid -funktionen för att extrahera koordinaterna från variabeltexten och skriva koordinaterna till cell A1 och cell A2.

Område ("A1"). Värde = Mitt (text, posLat + 10, 5)
Område ("A2"). Värde = Mitt (text, posLong + 11, 5)

9. Testa programmet.

Resultat:

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave