Leggi i dati da un file di testo utilizzando Excel VBA - Easy Excel Macros

Sommario

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:

1. Innanzitutto, scarica il file di testo e aggiungilo a "C:\test\"

Posiziona un pulsante di comando sul foglio di lavoro e aggiungi le seguenti righe di codice:

2. Dichiariamo quattro variabili. myFile di tipo String, testo di tipo String, riga di testo 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. Dobbiamo inizializzare la variabile myFile con il percorso completo e il nome del file.

mioFile = "C:\test\coordinate geografiche.txt"

o

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

mioFile = Application.GetOpenFilename()

Nota: la parte vuota tra parentesi significa che non diamo nulla a Excel VBA come input. Posiziona il cursore su GetOpenFilename nell'editor di Visual Basic e fai clic su F1 per assistenza sugli argomenti.

4. Aggiungi la seguente riga di codice:

Apri myFile per l'input come #1

Nota: questa istruzione consente la lettura del file. Possiamo fare riferimento al file come #1 durante il resto del nostro codice.

5. Aggiungi le seguenti righe di codice:

Fai fino a EOF(1)
Input di riga n. 1, riga di testo
testo = testo e riga di testo
Ciclo continuo

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

6. Chiudere il file.

Chiudi #1

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

posLat = InStr(testo, "latitudine")
posLong = InStr(testo, "longitudine")

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

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

9. Testare il programma.

Risultato:

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave