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, 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:
3/4 Completado! Obtenga más información sobre el objeto de aplicación>
Siguiente capítulo: Controles ActiveX