Gegevens uit een tekstbestand lezen met Excel VBA - Eenvoudige Excel-macro's

Inhoudsopgave

Hieronder zullen we kijken naar een programma in Excel VBA Dat leest gegevens uit een tekstbestand. Dit bestand bevat enkele geografische coördinaten die we in Excel willen importeren.

Situatie:

1. Download eerst het tekstbestand en voeg het toe aan "C:\test\"

Plaats een opdrachtknop op uw werkblad en voeg de volgende coderegels toe:

2. We declareren vier variabelen. myFile van het type String, tekst van het type String, tekstregel van het type String, posLat van het type Integer en posLong van het type Integer.

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

3. We moeten de variabele myFile initialiseren met het volledige pad en de bestandsnaam.

myFile = "C:\test\geografische-coördinaten.txt"

of

gebruik de methode GetOpenFilename van het toepassingsobject om het standaard dialoogvenster Openen weer te geven en het bestand te selecteren (zonder het bestand daadwerkelijk te openen).

myFile = Application.GetOpenFilename()

Let op: het lege gedeelte tussen de haakjes betekent dat we Excel VBA niets als invoer geven. Plaats uw cursor op GetOpenFilename in de Visual Basic Editor en klik op F1 voor hulp bij de argumenten.

4. Voeg de volgende coderegel toe:

Open myFile voor invoer als #1

Opmerking: met deze verklaring kan het bestand worden gelezen. We kunnen naar het bestand verwijzen als #1 tijdens de rest van onze code.

5. Voeg de volgende coderegels toe:

Doen tot EOF(1)
Lijningang #1, tekstregel
tekst = tekst & tekstregel
Lus

Opmerking: tot het einde van het bestand (EOF) leest Excel VBA een enkele regel uit het bestand en wijst deze toe aan tekstregel. We gebruiken de operator & om alle afzonderlijke regels samen te voegen (samen te voegen) en op te slaan in de variabele tekst.

6. Sluit het bestand.

Sluiten #1

7. Vervolgens zoeken we naar de positie van de woorden latitude en longitude in de variabele tekst. We gebruiken de Instr-functie.

posLat = InStr(tekst, "breedtegraad")
posLong = InStr(tekst, "lengtegraad")

8. We gebruiken deze posities en de functie Mid om de coördinaten uit de variabele tekst te extraheren en de coördinaten naar cel A1 en cel A2 te schrijven.

Bereik ("A1"). Waarde = Midden (tekst, posLat + 10, 5)
Bereik ("A2"). Waarde = Midden (tekst, posLang + 11, 5)

9. Test het programma.

Resultaat:

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave