Нижче ми розглянемо програму в 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-koordinate.txt"
або
використовуйте метод GetOpenFilename об'єкта Application для відображення стандартного діалогового вікна "Відкрити" та вибору файлу (без фактичного відкриття файлу).
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. Перевірте програму.
Результат: