/ / Legge i dati da un file di testo usando Excel VBA

Leggi i dati da un file di testo usando Excel VBA

Di seguito vedremo un programma in Excel VBA quello legge i dati da un file di testo. Questo file contiene alcune coordinate geografiche che vogliamo importare in Excel.

Situazione:

Leggi i dati dal file di testo usando Excel VBA

1. Per prima cosa, scarica il file di testo e aggiungilo a "C: test"

Inserire un pulsante di comando nel foglio di lavoro e aggiungere le seguenti linee di codice:

2. Dichiariamo quattro variabili. myFile di tipo String, testo di tipo String, textline di tipo String, posLat di tipo Integer e posLong di tipo Integer.

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

3. Abbiamo bisogno di inizializzare la variabile myFile con il percorso completo e il nome del file.

myFile = "C:testgeographical-coordinates.txt"

o

utilizzare il metodo GetOpenFilename dell'oggetto Application per visualizzare la finestra di dialogo standard aperta e selezionare il file (senza aprire effettivamente il file).

myFile = Application.GetOpenFilename()

Nota: la parte vuota tra parentesi significa che non forniamo nulla come VBA di Excel. Posizionare il cursore su GetOpenFilename nel Visual Basic Editor e fare clic su F1 per la guida sugli argomenti.

4. Aggiungi la seguente riga di codice:

Open myFile For Input As #1

Nota: questa istruzione consente di leggere il file. Possiamo riferirci al file come numero 1 durante il resto del nostro codice.

5. Aggiungi le seguenti linee di codice:

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

Nota: fino alla fine del file (EOF), Excel VBA legge una singola riga dal file e la assegna a testo. Usiamo l'operatore & per concatenare (unire) tutte le singole linee e memorizzarle nel testo variabile.

6. Chiudi il file.

Close #1

7. Successivamente, cerchiamo la posizione delle parole latitudine e longitudine nel testo variabile. Usiamo la funzione Instr.

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

8. Usiamo queste posizioni e la funzione Mid per estrarre le coordinate dal testo variabile e scrivere le coordinate sulla cella A1 e sulla cella A2.

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

9. Testare il programma.

Risultato:

Leggi dati dal risultato del file di testo

Leggi anche: