A continuación vamos a ver un programa en Excel VBA que lee datos de un archivo de texto. Este archivo contiene unas coordenadas geográficas que desea importar en Excel.

Situación:

Read Data from Text File using Excel VBA

  1. En primer lugar, descargue el archivo de texto y añadirlo a «C: \ test \»

Coloque un botón de comando en la hoja de trabajo y añadir las líneas de código siguientes:

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

Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer
  1. necesitamos inicializar la variable myFile con la ruta completa y el nombre del archivo.

myFile = "C:\test\geographical-coordinates.txt"

o utilizar el método GetOpenFilename del objeto Application para mostrar el cuadro de diálogo estándar Abrir y seleccione el archivo (y sin tener que abrir el archivo).

myFile = Application.GetOpenFilename()

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

  1. Añadir la siguiente línea de código:

Open myFile For Input As #1

Nota: esta declaración permite que el archivo para ser leído. Podemos hacer referencia al archivo como # 1 durante el resto de nuestro código.

  1. Añadir 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 lo asigna a línea de texto. Utilizamos el operador & para concatenar (unir) todas las líneas individuales y la almacenamos en el texto variable.

  1. Cierre el archivo.

Close #1
  1. A continuación, la búsqueda de la posición de las palabras de latitud y longitud en el texto variable. Utilizamos la función Instr.

posLat = InStr(text, "latitude")

posLong = InStr(text, "longitude")
  1. Utilizamos estas posiciones y la función Mid para extraer las coordenadas del texto variable y escribir las coordenadas de la celda A1 y la celda A2.

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

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

Prueba 9. programa.

Resultado:

Read Data from Text File Result