Czytaj dane z pliku tekstowego za pomocą Excel VBA - Easy Excel Macros

Spisie treści

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:

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave