Poniżej przyjrzymy się programowi w Excel VBA że odczytuje dane z pliku tekstowego. Ten plik zawiera współrzędne geograficzne, które chcemy zaimportować do Excela.
Sytuacja:
1. Najpierw pobierz plik tekstowy i dodaj go do "C:\test\"
Umieść przycisk polecenia w arkuszu i dodaj następujące wiersze kodu:
2. Deklarujemy cztery zmienne. myFile typu String, tekst typu String, linia tekstowa typu String, posLat typu Integer i posLong typu Integer.
Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer
3. Musimy zainicjować zmienną myFile pełną ścieżką i nazwą pliku.
myFile = "C:\test\współrzędne-geograficzne.txt"
lub
użyj metody GetOpenFilename obiektu Application, aby wyświetlić standardowe okno dialogowe Otwórz i wybrać plik (bez faktycznego otwierania pliku).
mójPlik = Aplikacja.PobierzNazwęPlikuOtwartego()
Uwaga: pusta część między nawiasami oznacza, że nie dajemy Excelowi VBA niczego jako danych wejściowych. Umieść kursor na GetOpenFilename w Edytorze Visual Basic i kliknij F1, aby uzyskać pomoc dotyczącą argumentów.
4. Dodaj następującą linię kodu:
Otwórz myFile do wprowadzenia jako nr 1
Uwaga: to oświadczenie umożliwia odczytanie pliku. W dalszej części kodu możemy odwoływać się do pliku jako #1.
5. Dodaj następujące linie kodu:
Rób do EOF(1)
Wejście liniowe nr 1, linia tekstowa
tekst = tekst i linia tekstu
Pętla
Uwaga: do końca pliku (EOF) Excel VBA odczytuje pojedynczą linię z pliku i przypisuje ją do linii tekstowej. Używamy operatora & do łączenia (połączenia) wszystkich pojedynczych wierszy i przechowywania ich w zmiennym tekście.
6. Zamknij plik.
Zamknij #1
7. Następnie szukamy pozycji słów szerokość i długość geograficzna w tekście zmiennym. Używamy funkcji Instr.
posLat = InStr(tekst, "szerokość")
posLong = InStr(tekst, "długość geograficzna")
8. Używamy tych pozycji i funkcji Mid, aby wyodrębnić współrzędne ze zmiennej tekstu i zapisać współrzędne w komórce A1 i komórce A2.
Zakres("A1").Value = Mid(tekst, pozLat + 10, 5)
Zakres("A2").Value = Mid(tekst, posLong + 11, 5)
9. Przetestuj program.
Wynik: