Leer los datos de un archivo de texto

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:

1. Primero, descarga el archivo de texto y añádelo a «C:testN»

Coloca un botón de comando en tu hoja de trabajo y añade las siguientes líneas de código:

2. Declaramos cuatro variables. miArchivo 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:\N-coordinadas-geográficas.txt»

o

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

myFile = Aplicación.GetOpenFilename()

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

4. Añade la siguiente línea de código:

Abrir mi archivo para la entrada como #1

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

5. Añade las siguientes líneas de código:

Hasta EOF(1) Entrada de línea #1, línea de texto texto = texto & línea de texto Bucle

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 simples y almacenarlas en el texto variable.

6. Cierra el archivo.

Cerrar #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(texto, «latitud») posLong = InStr(texto, «longitud»)

8. Utilizamos 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.

Rango(«A1»).Valor = Mid(texto, posLat + 10, 5) Rango(«A2»).Valor = Mid(texto, posLargo + 11, 5)

9. Pruebe el programa.

Resultado:

Deja un comentario