Excel VBA GetObject
VBA GetObject, як ім'я, здається, нам потрібно створити код для отримання або створення об'єкта. Але насправді це процес отримання таблиць з будь-якого слова у файл excel. У VBA GetObject ми отримуємо дані з файлу слів, розміщуючи місце, де вони зберігаються, і додаємо будь-яку кількість таблиць із цього Word на аркуш Excel.
Синтаксис VBA GetObject
Синтаксис пояснюється так, як показано нижче:
- PathName = Тут ми прокладемо шлях до документа Word, де він зберігається. Це поле не є обов'язковим.
- Class = Тут нам потрібно визначити функцію Class of Object. Цей занадто необов’язковий. Але якщо ми не визначаємо PathName у синтаксисі, Клас повинен буде визначати.
Обидва аргументи синтаксису необов’язкові. Але когось із них слід визначити.
Тут ми будемо використовувати appname.objecttype для визначення класу. AppName - це додаток або тип файлу, з якого ми будемо отримувати дані, а Objecttype буде тим самим файловим додатком, яке ми будемо використовувати.
Приклад функції GetObject в Excel VBA
Ми побачимо, як отримати дані, які є у вигляді таблиці у словному документі, і додати ці дані до робочого листа Excel.
Ви можете завантажити цей шаблон VBA GetObject Excel тут - Шаблон VBA GetObject ExcelДля цього нам потрібні такі дані у файлі word. Тут ми маємо слово слово нижче, в якому є 2 таблиці імені працівника та ідентифікатора працівника.
Цей файл ми зберегли десь на локальному диску, до якого легко отримати доступ. Для використання функції GetObject в Excel VBA виконайте наведені нижче дії.
Крок 1: Перейдіть до вікна VBA і відкрийте модуль на вкладці меню Вставка, як показано нижче.
Крок 2. У щойно відкритому модулі напишіть підкатегорію VBA GetObject або ви можете вибрати будь-яке інше ім'я за потребою.
Крок 3: Спочатку визначте змінну 2 Object для доступу до Об'єкта, підготовленого VBA GetObject.
Крок 4: Нам знадобиться ще одна змінна, для якої ми збережемо розташування Файлу як String.
Крок 5: Щоб уникнути будь-якого розриву, якщо сталася помилка, ми продовжуватимемо відновлення наступного кроку.
Крок 6: Тепер ми використаємо функцію GetObject і встановимо її як об’єкт WordFile . Зберігаючи Пустий порожнім, ми визначимо Клас як Word.Application, де Word є додатком Microsoft.
Крок 7: Щоб уникнути помилки номер 429, яка зазвичай виникає в цьому випадку, ми очистимо її як це відбувається.
Крок 8: Тепер зробіть створену змінну об'єкта WordFile видимою.
Крок 9: Оскільки шлях ми не визначили, ми призначимо розташування файлу StrDoc разом з розширенням.
Крок 10: Якщо ми не знайшли нічого у текстовому файлі, то нам слід отримати повідомлення із запитом "Немає даних" або "Документ не знайдено". І це буде зроблено в циклі If-End If.
Крок 11: Тепер активуйте файл Word.
Крок 12: Виконайте таку ж процедуру для встановлення WordDoc. Якщо WordDoc - це нічого, тоді ми відкриємо файл із місця, де він зберігається.
Крок 13: Тепер нам потрібно буде визначити змінні, які допоможуть отримати доступ до таблиці з документа Word. Цим ми створимо таблицю з рядками та стовпцями.
Крок 14: Як ми всі знаємо, вершина комірок є двовимірною. Отже, починаючи з 1- ої комірки, нам знадобиться 2 змінні, де ми визначимо місце, з якого нам потрібно запустити нашу таблицю в Excel. Тут ми розглянули ту позицію в (1, 1), яка знаходиться на 1- й комірці аркуша.
Крок 15: На цьому етапі нам потрібно перевірити кількість таблиць у файлі Word. І якщо не знайдені таблиці, ми повинні отримати повідомлення про це.
Крок 16: На цьому кроці нам потрібно отримати доступ до таблиці з документа Word і відобразити їх у файлі Excel. Для цього ми будемо використовувати цикл For для кожного рядка та стовпця.
Крок 17: Нарешті, ми вийдемо з документа, як тільки він додасть дані з слова до файлу excel, не зберігаючи файл.
Крок 18: Тепер запустіть наведений вище код, натиснувши клавішу F5 або натиснувши кнопку Відтворити.
Ми побачимо, дані, які ми бачили на початку статті, яка була окремою у двох різних таблицях, тепер додаються до однієї таблиці на аркуші excel.
Нижче наведено повний код в одній послідовності:
Код:
Sub VBA_GetObject () Dim WordFile як об'єкт Dim WordDoc як об’єкт Dim StrDoc як рядок помилки Відновлення Наступне Встановити WordFile = GetObject (, "Word.Application") Якщо Err.Number = 429, то Err.Clear встановити WordFile = CreateObject ("Word. Застосування ") Кінець, якщо WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "If Dir (StrDoc) =" "Тоді MsgBox StrDoc & vbCrLf &" Не знайдено у згаданому шляху "& vbCrLf &" C: \ Розташування вводу ", vbExclamation, " Ім'я документа не знайдено "Вийдіть з підрозділу, якщо WordFile.Activate Встановити WordDoc = WordFile.Документи (StrDoc) Якщо WordDoc - ніщо, тоді встановіть WordDoc = WordFile.Documents.Open (" D: \ Input \ Test "). docx ") WordDoc.Activate Dim Tble As Integer Dim RowWord As Long Dim ColWord As Integer Dim A As Long Dim B As Long A = 1 B = 1 With WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Тоді MsgBox" Без таблиць Доступні ", vbExclamation, " Нічого для імпорту "Вийдіть з підзакінчення, якщо для i = 1 для Tble з .Tables (i) для RowWord = 1 до .Rows.Count для ColWord = 1 до .Columns.Count Cell (A, B) = WorkheetFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 Наступний ColWord B = 1 A = A + 1 Наступний кінець рядка з наступним кінцем з WordDoc.Закрийте збереження: = False WordFile.Quit Встановити WordDoc = Нічого не встановлено WordFile = Нічого кінця Sub
Плюси Excel VBA GetObject
- Це дуже корисно при імпорті великого набору даних із файлу word у файл excel.
- Ми можемо імпортувати будь-які дані з будь-якого типу файлів, просто змінивши розширення.
Що потрібно пам’ятати
- Перед запуском коду закрийте всі файли слів.
- Надайте належне розширення файлу, який використовується.
- GetObject не можна використовувати для доступу до посилання на клас.
Рекомендовані статті
Це посібник з GetObject VBA. Тут ми обговорюємо, як використовувати функцію GetObject у VBA для отримання даних із файлу слів у аркуш excel разом із практичним прикладом та завантажуваним шаблоном Excel. Ви також можете ознайомитися з іншими запропонованими нами статтями -
- VBA GetOpenFileName
- Інформаційна панель KPI в Excel
- Робоча книжка VBA відкрита
- Кількість слів Excel
- Excel VBA щодо помилки Відновіть далі