A continuación, veremos un programa en Excel VBA que lee datos de un archivo de texto . Este archivo contiene algunas coordenadas geográficas que queremos importar a Excel.

Situación:

Leer datos de un archivo de texto usando Excel VBA

1. Primero, descargue el archivo de texto y agréguelo a "C: test "

Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:

2. Declaramos cuatro variables. myFile de tipo String, texto de tipo String, línea de texto de tipo String, posLat de tipo Integer y posLong de tipo Integer.

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

3. Necesitamos inicializar la variable myFile con la ruta completa y el nombre del archivo.

myFile = "C:testgeographical-coordinates.txt"

o

utilice el método GetOpenFilename del objeto Aplicación para mostrar el cuadro de diálogo Abrir estándar y seleccione el archivo (sin abrir realmente el archivo).

myFile = Application.GetOpenFilename()

Nota: la parte vacía entre corchetes significa que no le damos nada a Excel VBA como entrada. Coloque el cursor en GetOpenFilename en el Editor de Visual Basic y haga clic en F1 para obtener ayuda sobre los argumentos.

4. Agregue la siguiente línea de código:

Open myFile For Input As #1

Nota: esta declaración permite leer el archivo. Podemos referirnos al archivo como # 1 durante el resto de nuestro código.

5. Agregue las siguientes líneas de código:

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

Nota: hasta el final del archivo (EOF), Excel VBA lee una sola línea del archivo y la asigna a la línea de texto. Usamos el operador & para concatenar (unir) todas las líneas individuales y almacenarlas en el texto variable.

6. Cierre el archivo.

Close #1

7. A continuación, buscamos la posición de las palabras latitud y longitud en el texto variable. Usamos la función Instr .

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

8. Usamos estas posiciones y la función Mid para extraer las coordenadas del texto variable y escribir las coordenadas en la celda A1 y la celda A2.

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

9. Pruebe el programa.

Resultado:

Leer datos del resultado del archivo de texto

3/4 Completado! Obtenga más información sobre el objeto de aplicación>
Siguiente capítulo: Controles ActiveX