Abaixo, veremos um programa em Excel VBA que lê dados de um arquivo de texto. Este arquivo contém algumas coordenadas geográficas que queremos importar para o Excel.
Situação:
1. Primeiro, baixe o arquivo de texto e adicione-o a "C: \ test \"
Coloque um botão de comando em sua planilha e adicione as seguintes linhas de código:
2. Declaramos quatro variáveis. myFile do tipo String, texto do tipo String, linha de texto do tipo String, posLat do tipo Integer e posLong do tipo Integer.
Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer
3. Precisamos inicializar a variável myFile com o caminho completo e o nome do arquivo.
meuArquivo = "C: \ teste \ coordenadas geográficas.txt"
ou
use o método GetOpenFilename do objeto Aplicativo para exibir a caixa de diálogo Abrir padrão e selecione o arquivo (sem realmente abrir o arquivo).
myFile = Application.GetOpenFilename ()
Observação: a parte vazia entre colchetes significa que não fornecemos ao Excel VBA nada como entrada. Coloque o cursor em GetOpenFilename no Editor do Visual Basic e clique em F1 para obter ajuda sobre os argumentos.
4. Adicione a seguinte linha de código:
Abra myFile para entrada como # 1
Nota: esta declaração permite que o arquivo seja lido. Podemos nos referir ao arquivo como # 1 durante o resto do nosso código.
5. Adicione as seguintes linhas de código:
Faça Até EOF (1)
Linha de entrada # 1, linha de texto
texto = texto e linha de texto
Ciclo
Nota: até o final do arquivo (EOF), o Excel VBA lê uma única linha do arquivo e a atribui à linha de texto. Usamos o operador & para concatenar (juntar) todas as linhas únicas e armazená-las no texto da variável.
6. Feche o arquivo.
Fechar # 1
7. A seguir, procuramos a posição das palavras latitude e longitude no texto da variável. Usamos a função Instr.
posLat = InStr (texto, "latitude")
posLong = InStr (texto, "longitude")
8. Usamos essas posições e a função Mid para extrair as coordenadas do texto da variável e escrever as coordenadas na célula A1 e na célula A2.
Intervalo ("A1"). Valor = Médio (texto, posLat + 10, 5)
Intervalo ("A2"). Valor = Médio (texto, posLong + 11, 5)
9. Teste o programa.
Resultado: