По -долу ще разгледаме програма в Excel VBA че чете данни от текстов файл. Този файл съдържа някои географски координати, които искаме да импортираме в Excel.
Ситуация:
1. Първо изтеглете текстовия файл и го добавете към „C: \ test \“
Поставете команден бутон на работния си лист и добавете следните кодови редове:
2. Декларираме четири променливи. myFile от тип String, текст от тип String, текстов ред от тип String, posLat от тип Integer и posLong от тип Integer.
Dim myFile As String, text As String, textline As String, posLat As Integer, posLong As Integer
3. Трябва да инициализираме променливата myFile с пълния път и името на файла.
myFile = "C: \ test \ geografske-координати.txt"
или
използвайте метода GetOpenFilename на обекта Application, за да покажете стандартния диалогов прозорец Open и изберете файла (без действително да отваряте файла).
myFile = Application.GetOpenFilename ()
Забележка: празната част между скобите означава, че не даваме нищо на Excel VBA като вход. Поставете курсора върху GetOpenFilename в редактора на Visual Basic и щракнете върху F1 за помощ по аргументите.
4. Добавете следния код:
Отворете myFile за въвеждане като #1
Забележка: това изявление позволява четенето на файла. Можем да посочим файла като #1 през останалата част от нашия код.
5. Добавете следните кодови редове:
Направете до EOF (1)
Линеен вход #1, текстов ред
текст = текст & текстов ред
Цикъл
Забележка: до края на файла (EOF) Excel VBA чете един ред от файла и го присвоява на текстов ред. Използваме оператора &, за да свържем (съединим) всички единични редове и да ги съхраняваме в текста на променливата.
6. Затворете файла.
Затворете #1
7. След това търсим позицията на думите географска ширина и дължина в текста на променливата. Използваме функцията Instr.
posLat = InStr (текст, "географска ширина")
posLong = InStr (текст, "дължина")
8. Използваме тези позиции и функцията Mid, за да извлечем координатите от текста на променливата и да запишем координатите в клетка A1 и клетка A2.
Диапазон ("A1"). Стойност = средна (текст, posLat + 10, 5)
Диапазон ("A2"). Стойност = средна (текст, posLong + 11, 5)
9. Тествайте програмата.
Резултат: