Nižšie sa pozrieme na program v Excel VBA že číta údaje z textového súboru. Tento súbor obsahuje niektoré geografické súradnice, ktoré chceme importovať do Excelu.
Situácia:
1. Najprv si stiahnite textový súbor a pridajte ho do „C: \ test \“
Na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúce riadky kódu:
2. Deklarujeme štyri premenné. myFile typu String, text typu String, textový riadok typu String, posLat typu Integer a posLong typu Integer.
Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer
3. Potrebujeme inicializovať premennú myFile s úplnou cestou a názvom súboru.
myFile = "C: \ test \ Geographic-Coordinates.txt"
alebo
pomocou metódy GetOpenFilename objektu Application zobrazte štandardné dialógové okno Otvoriť a vyberte súbor (bez skutočného otvorenia súboru).
myFile = Application.GetOpenFilename ()
Poznámka: prázdna časť medzi zátvorkami znamená, že programu Excel VBA neposkytujeme nič ako vstup. Umiestnite kurzor na položku GetOpenFilename v editore jazyka Visual Basic a kliknite na kláves F1, aby ste získali pomoc s argumentmi.
4. Pridajte nasledujúci riadok kódu:
Otvorte myFile pre vstup ako #1
Poznámka: toto vyhlásenie umožňuje čítanie súboru. Po zvyšok nášho kódu môžeme súbor označiť ako #1.
5. Pridajte nasledujúce riadky kódu:
Robiť do EOF (1)
Riadkový vstup č. 1, textový riadok
text = text & textový riadok
Slučka
Poznámka: Excel VBA do konca súboru (EOF) prečíta jeden riadok zo súboru a priradí ho textovému riadku. Na spájanie (spájanie) všetkých jednotlivých riadkov používame operátor & a ukladáme ho do textu premennej.
6. Zatvorte súbor.
Zatvorte #1
7. Ďalej v premennom texte hľadáme polohu slov zemepisná šírka a dĺžka. Používame funkciu Instr.
posLat = InStr (text, "zemepisná šírka")
posLong = InStr (text, "zemepisná dĺžka")
8. Tieto polohy a funkciu Mid používame na extrahovanie súradníc z textu premennej a zapísanie súradníc do bunky A1 a bunky A2.
Rozsah („A1“). Hodnota = stred (text, posLat + 10, 5)
Rozsah ("A2"). Hodnota = stred (text, posLong + 11, 5)
9. Otestujte program.
Výsledok: