Як інтегрувати дані Excel у документ Word

Оновлено Бредом Джонсом 25 серпня 2017 року.

Відкрийте БЕЗКОШТОВНУ шпаргалку «Essential Excel Oneulas» прямо зараз!

Це підпише вас на нашу розсилку


Введіть адресу електронної пошти

[] [] [] [] розблокування

Прочитайте нашу політику конфіденційності

Протягом вашого робочого тижня, можливо, ви часто копіюєте і вставляєте інформацію з Microsoft Excel в Word або навпаки.

Саме так люди часто створюють письмові звіти на основі даних, які накопичуються і оновлюються в електронній таблиці. Excel - відмінна програма для всього, від створення професійно виглядаючих діаграм до налаштування трекера управління проектами, але коли справа доходить до написання звіту, Word - набагато кращий інструмент.

У цій статті ми збираємося заглибитися у фонові сценарії VBA, які дозволяють фактично програмувати з'єднання між даними, які зберігаються в файлі Excel, і документами Word, де ви створюєте звіти.


На диво легко інтегрувати дані Microsoft Excel в Microsoft Word, якщо ви знаєте, як додавати правильні посилання і як вибудовувати синтаксис фонового коду VBA.

Налаштування електронної таблиці

У цьому прикладі я збираюся почати з досить простої таблиці Excel. На практиці файл Excel може складатися з декількох електронних таблиць з великою кількістю даних - це не має значення.

До тих пір, поки ви знаєте, де знайти дані в електронній таблиці, ви зможете отримати доступ і захопити їх, використовуючи VBA.

Ось як виглядає мій зразок таблиці. Це список загальних витрат, які були розраховані протягом усього року.

Налаштування документа Word

Припустимо, у вас є менеджер, який хотів би бачити звіт в хорошому форматі, який описує витрати, об'єднує їх в єдине ціле і представляє інформацію в макеті, який виглядає трохи більш естетично.

Ви можете зробити це, включивши до документа Word такі об'єкти, як текстові поля та мітки. Коли ви перебуваєте в Word, просто клацніть на вкладці «Розробник», а потім виберіть «Режим розробки» в розділі «Елементи керування». Використовуйте спадний значок Legacy Tools, щоб вставити різні елементи у ваш документ.

Скористайтеся цим меню, щоб вставити мітку.


Як тільки ви помістите мітку в потрібний вам документ (не завжди просте завдання), ви будете готові запрограмувати потік даних. Але спочатку вам потрібно назвати ярлик, щоб VBA міг його ідентифікувати. Клацніть правою клавішею миші і перейдіть до властивостей. Знайдіть поле (Назва) і назвіть його тим, що ви запам'ятаєте.

Тепер додайте Command Button з того самого спадного списку Legacy Tools і двічі клацніть на ньому, щоб відкрити редактор VBA. Коли ваш код запрацює пізніше, ви можете змінити його, щоб він виконувався при події Document Open (). Ви побачите це у списках об "єктів у вікні редактора.

Робота з VBA

Щоб приступити до з'єднання Word до Excel, необхідно переконатися, що ви можете послатися на останнє в VBA

Підготуйте імпорт даних Excel

Натисніть «Інструменти», а потім «Посилання». Прокрутіть список вниз, поки не побачите бібліотеку об'єктів Microsoft Excel 16.0 і виберіть її.

Після того, як ви це зробите, решта всього лише питання написання сміховинно простого сценарію VBA для вилучення даних з електронної таблиці Excel і автоматичного оновлення заголовка мітки даними.


Ось код:

Частный Sub CommandButton1_Click ()
 Dim objExcel As New Excel. Додаток
Dim exWb As Excel.Workbook
Встановіть exWb = objExcel.Workbooks.Open («» C: \ Users \ Brad \ Desktop \ cost.xlsx"")
 ThisDocument.total_expenses.Caption = exWb.Sheets (""Sheet1""). Комірки (12, 2)
exWb.Close
Встановити exWb = нічого
End Sub

Бачиш як це працює? Прикладний об'єкт Excel «exWb» відкриває файл Microsoft Excel вказаним вами шляхом, і він потрапляє прямо в конкретний аркуш і номер комірки, витягує дані і поміщає їх у властивість Caption мітки, яку я назвав total_expenses. Все, що вам потрібно редагувати у вашому скрипті - це шлях до файла і назва мітки.

Перевірте свій макрос

Щоб перевірити свою командну кнопку, збережіть документ, не забуваючи вказати, що ви хочете документ Word з підтримкою макросів, щоб ваш код працював.

Ось макрос VBA в дії.


Інтегрувати ярлики Excel

Складність роботи з мітками в Word полягає в тому, що іноді важко вирівняти його в кінці речення або поруч з будь-яким іншим текстом.

Одним із способів подолання цього є включення деякого тексту разом з даними в сам код VBA. Як ви можете бачити тут, я помістив статичний текст прямо в підпис, коли створюю сам ярлик.

Тепер все, що вам потрібно зробити, це включити цей текст, коли ви оновлюєте мітку за допомогою сценарію VBA, і просто додати дані з файлу Microsoft Excel в кінець цього тексту.

Ось як буде виглядати цей код.

Dim objExcel As New Excel. Додаток
Dim exWb As Excel.Workbook
Встановіть exWb = objExcel.Workbooks.Open («» c: \ Users \ Brad \ Desktop \ cost.xlsa"")
 ThisDocument.total_expenses.Caption = exWb.Sheets (""Sheet1""). Комірки (12, 2)
ThisDocument.total_hotels.Caption = «» Готелі:"" & exWb.Sheets (""Sheet1""). Ячейки (5, 2)
 ThisDocument.total_dining.Caption = ""Dining Out:"" & exWb.Sheets (""Sheet1""). Ячейки (2, 2)
 ThisDocument.total_tolls.Caption = ""Tolls:"" & exWb.Sheets (""Sheet1""). Комірки (3, 2)
ThisDocument.total_fuel.Caption = «» Fuel:"" & exWb.Sheets (""Sheet1""). Комірки (10, 2)
exWb.Close
Встановити exWb = нічого


Ви можете використовувати символ «&» для конкатенації рядків, щоб зв'язати статичний текст з даними, витягнутими з аркуша Excel. Ось як виглядатимуть остаточні результати в оновленому документі Word:

Речі далі

Якщо ви хочете перевірити свої можливості, чому б не автоматизувати звіт? ще далі? Ви можете вилучити цю потворну сіру командну кнопку з документа Microsoft Word, просто запустивши скрипт оновлення даних в Document.Open () - весь процес буде відбуватися за лаштунками.

Це означає, що у багатьох випадках ви можете створити вихідний документ один раз, а потім ніколи не створювати його знову. Все, що вам потрібно зробити, це відкрити його, і всі ярлики автоматично оновляться для вас даними з оновленого файлу Microsoft Excel. Просто натисніть «Друк» і відправте звіт своєму менеджеру. 30-хвилинне завдання перетворилося на роздруківку за одну хвилину!

Чи можете ви згадати якісь інші цікаві способи використання цієї техніки інтеграції даних з використанням VBA? Поділіться своїми ідеями і думками в розділі коментарів нижче.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND