Vba из excel в word: VBA Excel. Вставка таблицы Excel в документ Word
Содержание
Перенос данных из Excel в Word
Предложу два варианта переноса данных из Excel в Word.
Вариант первый:
Cоздаются связи между книгой Excel и Шаблоном Word. После заполнения связанных ячеек
в Excel и вызова/обновления Шаблона Word мы получаем заполненную данными из Excel
копию Шаблона Word.
1.Открываем Шаблон Word и файл с данными Excel. Затем выделяем в Excel нужную ячейку
и выбираем в Word место для вставки, затем на вкладке «Главная» -> «Вставить» -> «Специальная вставка..»
В появившейся форме слева выбираем «Связать:» и в поле «Как:» -> Неформатированный текст. Жмем ОК.
Связь установлена. Сохраним и закроем Шаблон Word.
2.Создадим макрос, который теперь будет вызывать/обновлять связанный шаблон. Где FileSt — это
имя и место расположения файла Шаблона Word, а FileNew — это имя и место расположения нового файла Word.
Sub obj() Dim objWord As Object Dim FileStart Dim FileNew Set objWord = CreateObject("Word. Application") FileSt = "C:\Шаблон.docx" FileNew = "C:\Новый_Файл.docx" objWord.Documents.Open FileSt For Each MyLink In objWord.ActiveDocument.Fields MyLink.Update MyLink.Unlink Next MyLink objWord.ActiveDocument.SaveAs _ filename:=FileNew, _ FileFormat:=wdFormatDocument, _ Password:="", _ AddToRecentFiles:=True, _ WritePassword:="", _ ReadOnlyRecommended:=False objWord.Quit End Sub
Вариант второй:
Cоздаём закладки в Шаблоне Word.
1.Открываем Шаблон Word. Установим курсор в нужном месте, на вкладке «Вставка» -> выбираем «Закладка»
и в появившейся форме вводим имя закладки (например: first) -> нажимаем «Добавить». Сохраним и закроем
Шаблон Word.
2.Создадим макрос, который теперь будет вызывать Шаблон с закладками и вносить данные из ячейки Cells(1,1). Value
в созданную закладку first Шаблона Word.
Sub obj() Dim objWord As Object Dim FileStart Dim FileNew Set objWord = CreateObject("Word.Application") FileSt = "C:\Шаблон.docx" FileNew = "C:\Новый_Файл.docx" Set objDoc = objWord.Documents.Open(FileSt) objWord.Visible = True objDoc.Bookmarks("first").Range.InsertAfter (Cells(1, 1).Value) objWord.ActiveDocument.SaveAs _ Filename:=FileNew, _ FileFormat:=wdFormatDocument, _ Password:="", _ AddToRecentFiles:=True, _ WritePassword:="", _ ReadOnlyRecommended:=False objWord.Quit End Sub
P.S. Обращаю внимание, что если вместо objWord.Visible = True написать objWord.Visible = False, то
Шаблон Word появляться не будет.
Программы и макросы Excel в категории Документы Word
Программы и макросы для создания и заполнения документов Word данными из Excel, таблица из Excel в Word, обработка файлов Word, подстановка данных из Excel в Word, вставить таблицу Excel в Word
Надстройка для заполнения документов данными из Excel (из Excel в Word) + рассылка почты
Надстройка FillDocuments для MS Excel: общие сведения
Предназначение программы: заполнение множества документов данными из Excel нажатием одной кнопки.
Для работы программы требуется таблица Excel с данными для подстановки, и папка с шаблоном (шаблонами) документов.
В качестве шаблонов можно использовать файлы Word и Excel.
На выходе получаются заполненные файлы исходного…Парсер сайтов и файлов (парсинг данных с сайта в Excel)
Надстройка Parser для Excel — простое и удобное решение для парсинга любых сайтов (интернет-магазинов, соцсетей, площадок объявлений) с выводом данных в таблицу Excel (формата XLS* или CSV), а также скачивания файлов.
Особенность программы — очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными,…Макрос создания документов Word по данным таблицы Excel
Макрос предназначен для программного создания документов Word на основе шаблона
(без использования функции слияния в Word)
В прикреплённом к статье архиве находятся 2 файла:
шаблон договора в формате Microsoft Word (расширение . dot)
файл Excel с макросом
Настройки макроса задаются в коде:
Const ИмяФайлаШаблона = «шаблон.dot»
Const КоличествоОбрабатываемыхСтолбцов = 8…Программа формирования договоров в Word из таблицы Excel
Программа предназначена для автоматизации формирования договоров комиссии и купли автотранспортного средства.
В качестве исходных данных выступают:
таблица Excel с реквизитами создаваемых документов
папка с шаблонами договоров (в формате dot)
В исходной таблице Excel занесены все необходимые исходные данные для заполнения бланков договоров, а также, при помощи пользовательских формул (UDF),…База данных «Преподаватели»
База данных «Преподаватели» предназначена для автоматизации работы администрации учебных заведений.
Программа обеспечивает выполнение всех необходимых операций по приему документов, поиску и анализу информации, составлению отчетов.
Эта база данных представляюет собой урезанную и немного изменённую версию программы АИСС СПК.
Программа обеспечивает:
Хранение полной…Автоматизированная информационно-справочная система сотрудника приемной комиссии
Программа АИСС «СПК» предназначена для автоматизации работы приемной комиссии колледжей и техникумов.
АИСС обеспечивает выполнение всех необходимых операций по приему документов, поиску и анализу информации, составлению отчетов.
Назначением программы является автоматизация труда работника приёмной комиссии учебного заведения.
Программа обеспечивает:
Хранение полной…Вставка документа Word в книгу Excel (с использованием технологии OLE)
Function PasteOLEobject(ByVal filename$, ByRef TopLeftCell As Range, _
Optional ByVal Width%, Optional ByVal Height%) As ShapeRange
‘ вставляет на лист объект OLE (из файла filename$)
‘ и размещает его в нужном месте, совмещая левый верхний угол с ячейкой TopLeftCell
‘ если указаны размеры Width% или Height% — они задаются вствляемому объекту
On Error. ..Программа перевода слов для Word (медицинский словарь)
Программа предназначена для быстрого поиска перевода выделенного в документе Word слова (или фразы) с использованием специализированного медицинского словаря.
Для поиска переводов используется словарь, расположенный на сайте заказчика.
Программа подключается к словарю через веб-интерфейс сайта, авторизуется (логин и пароль хранятся в отдельном текстовом файле), после чего производит поиск…Программа для регистрации, приема на работу и увольнения сотрудников
Программа предназначена для автоматизации рабочего места сотрудника, отвечающего за регистрацию, прием на работу, и увольнение иностранных граждан.
В качестве исходных данных используется таблица изображенная на скриншоте.
В этой таблице содержится нужная информация, необходимая для заполнения шаблонов документов.
Программа заполняет следующие документы:
Доверенность (doc)
Заявление на. ..Простейший текстовый редактор на форме VBA
Простейший текстовый редактор, который позволяет загружать документы Word из выбранной папки, и редактировать текст с возможностью последующего сохранения.
(сохраняется только текст, форматирование очищается)Загрузка информации из файлов Word (перебор страниц в документе)
Функция предназначена для вывода информации (статистики) по всем листам документа Word.
В качестве параметра, функция получает ссылку на открытый документ Word.
Результат работы функции представлен на скриншоте.
Код функции WordDocumentProperties:
Function DocumentProperties(ByRef doc As Object) As Variant
On Error Resume Next: Err.Clear
‘ формирует статистику по документу…
Как автоматизировать Word из Excel с помощью VBA
Этот пост является вторым в серии об управлении другими приложениями из Excel с помощью VBA. В первой части мы рассмотрели основы того, как ссылаться на другие приложения, используя Early Binding или Late Binding. В этом посте мы рассмотрим, как мы можем автоматизировать Word из Excel, даже если мы не знаем кода VBA для Word… пока. Для этого мы будем использовать следующий процесс:
- Включить меню разработчика Word
- Запишите макрос Word
- Добавьте код в Excel VBA и внесите изменения
- При необходимости запишите макросы в Excel
- Повторите предыдущие шаги, пока макрос не будет завершен
мастер VBA), и я, конечно, не эксперт Word VBA. Процесс, который я собираюсь показать вам, может быть не самый эффективный код, но я знаю, что этот процесс работает, потому что я сам использовал его для автоматизации многих задач с помощью Microsoft Word.
Содержание
Включить меню разработчика Word
Если вы включили меню разработчика Excel, это тот же процесс в Word.
В Word: Файл -> Параметры -> Настроить ленту
Затем отметьте опцию Лента разработчика, ОК.
Запись макроса Word
Ключом к успеху этого метода является выделение небольших фрагментов кода и постепенное создание сложного макроса. Использование средства записи макросов Word снова похоже на средство записи макросов Excel.
Нажмите: Разработчик -> Запись макроса
Для примера в этом посте мы создадим макрос, который откроет новый документ Word, затем скопирует диаграмму из Excel и вставит ее в этот документ Word. Мы будем решать этот этап за раз. Во-первых, давайте создадим макрос, чтобы открыть новый документ Word.
Нажмите — Разработчик -> Записать макрос. Откроется окно записи макроса.
Запишите опцию «Сохранить макрос в», так как позже нам нужно будет знать, где найти записанный код. Normal.dotm пока нормально. Нажмите «ОК» — теперь программа записи макросов запущена.
Открыть новый документ Word — Файл -> Создать -> Пустой документ
Остановить запись макроса — Разработчик -> Остановить запись
Теперь мы можем просмотреть код для открытия нового документа Word в визуальном Базовый редактор. Щелкните: Разработчик -> Visual Basic.
Найдите местоположение записанного кода в редакторе Visual Basic. В этом примере: Обычный -> Модули -> Новые макросы.
Ваш код должен выглядеть следующим образом. Может немного отличаться, но несущественно.
Подмакрос1() ' ' Макрос1 Макрос ' ' Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0 Windows("Документ1").Активировать Windows("Документ2").Активировать End Sub
Добавьте код в Excel VBA и измените
Вернемся к редактору Excel VBA и воспользуемся методом Early Binding для управления Microsoft Word. В редакторе Visual Basic нажмите Инструменты -> Ссылки выберите Библиотеку объектов Microsoft Word x.xx. Затем нажмите ОК.
Поскольку мы используем раннее связывание, нам нужно объявить приложение как переменную следующим образом:
Dim WordApp As Word.Application Установите WordApp = New Word.Application
Теперь скопируйте и вставьте код из редактора Word VBA в редактор Excel VBA.
Код Word VBA начинается с Documents. Добавьте , все, что нам нужно сделать, это добавить переменную нашего приложения в начало этой строки кода. Теперь становится WordApp.Документы.Добавить . . .
Часто выбор и активация объектов не требуется в коде VBA, поэтому я не копировал эти операторы в приведенный ниже код.
Подпрограмма CreateWordDocument() 'Подключиться с помощью раннего связывания. 'Не забудьте установить ссылку на библиотеку объектов Word 'В Инструменты редактора VBE -> Ссылки -> Библиотека объектов Microsoft Word x.xx Dim WordApp как Word.Application Установите WordApp = Новое Word.Application WordApp.Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0 WordApp.Visible = True 'Новые приложения будут скрыты по умолчанию, поэтому сделайте их видимыми Установить WordApp = Nothing 'освободить память Конец суб
Обратите внимание: когда приложение открывается с помощью VBA, оно обычно открывается в фоновом режиме. Чтобы сделать документ Word видимым, я добавил следующий код:
WordApp.Visible = True
Запись макросов в Excel (при необходимости)
Если мы хотим скопировать содержимое Excel в документ Word, нам нужно скопировать это содержимое с помощью Excel VBA. Мы можем использовать средство записи макросов в Excel, чтобы получить код VBA для копирования, затем мы можем использовать средство записи макросов Word, чтобы получить код VBA для вставки.
Запись макроса из Excel – выбор рабочего листа и копирование диаграммы
Листы("Лист1").Выбрать ActiveSheet.ChartObjects("Диаграмма 1").Активировать ActiveChart.ChartArea.Copy
Запись макроса из Word — вставка диаграммы в документ
Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _ Placement:=wdInLine, DisplayAsIcon:=False
Мы можем добавить обе записи макроса в наш макрос Excel. Не забудьте добавить WordApp. в начале каждого оператора кода Word VBA.
Подпрограмма CreateWordDocument() 'Подключиться с помощью раннего связывания. 'Не забудьте установить ссылку на библиотеку объектов Word 'В Инструменты редактора VBE -> Ссылки -> Библиотека объектов Microsoft Word x.xx Dim WordApp как Word.Application Установите WordApp = Новое Word.Application WordApp.Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0 WordApp.Visible = True 'Новые приложения будут скрыты по умолчанию, поэтому сделайте их видимыми 'код скопирован из программы записи макросов Excel Листы("Лист1").Выбрать Selection.ChartObjects("Диаграмма 1").ChartArea.Copy 'код, скопированный из программы записи макросов Word с помощью WordApp. добавлено на перед. WordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _ Размещение: = wdInLine, DisplayAsIcon: = False Установить WordApp = Nothing 'освободить память Конец суб
Этот код не особенно эффективен; он содержит несколько ненужных разделов кода. Однако… это работает!
Повторять предыдущие шаги до завершения макроса
Повторяя те же шаги, что и выше; записывая короткие действия, а затем перенося код в Excel, мы можем постепенно создавать гораздо более сложные макросы. Главное, чтобы действия были короткими, если вы выполняете слишком много действий с помощью средства записи макросов, код начинает выглядеть длинным и пугающим.
Если вы уже пробовали использовать средство записи макросов, то знаете, что это не так просто, как кажется. И это простое руководство может заставить вас думать, что это легко, когда это не так. Иногда это может быть довольно неприятно, пытаясь выяснить, где проблемы и ошибки. Ключом к успеху является запись очень коротких действий, таких как приведенные ниже, и копирование их в редактор Visual Basic.
'Нажатие клавиши Enter для перехода на новую строку в Word WordApp.Selection.TypeParagraph 'Включить/выключить полужирный текст WordApp.Selection.Font.Bold = wdToggle 'Изменить размер шрифта WordApp. Selection.Font.Size = 16 'Введите текст WordApp.Selection.TypeText Text:="Вот текст"
Вскоре вы создадите стандартную библиотеку кода, которую сможете использовать для управления Word для большинства основных задач.
В записанном коде VBA из Word слово «Выделение» в коде часто относится к самому документу. Код можно сделать немного эффективнее, объявив документ как переменную. Если бы мы открывали определенный документ, мы могли бы указать это в начале, сразу после объявления приложения.
'Объявить конкретный документ как переменную Dim WordDocument как объект Установите WordDocument = WordApp.Documents.Open(sourceFileName)
Или, если мы создали новый документ, мы могли бы включить следующее ниже объявления переменной приложения.
'Установить новый документ как переменную Dim WordDocument как объект Установите WordDocument = WordApp.Documents.Add Template:="Normal", _ NewTemplate:=False, DocumentType:=0
Если мы создали документ как переменную, мы можем ссылаться на конкретный документ. Этот код:
WordApp.Selection.TypeParagraph
Становится следующим кодом:
WordDocument.TypeParagraph
Или этот код:
WordApp.Selection.TypeText Text:="Вот какой-то текст"
Становится этим кодом :
WordDocument.TypeText Text:="Вот какой-то текст"
Этот метод намного лучше, так как он не зависит от Выбора пользователя, находящегося в нужном месте.
Заключение
В этом посте мы увидели, что можно создавать сложные макросы для автоматизации Word из Excel с помощью VBA. Поняв, как объявлять переменные для приложения и документов, мы можем создавать гораздо более надежные макросы, даже не зная большого количества кода VBA.
Похожие сообщения:
- 5 быстрых способов встроить документ Word в Excel
- Управление Powerpoint из Excel с помощью VBA
- Редактирование ссылок в Word с помощью VBA
- Как связать Excel с Word
О нас автор
Привет, меня зовут Марк, и я запускаю Excel Off The Grid.
Мои родители рассказали мне, что в возрасте 7 лет я объявил, что стану квалифицированным бухгалтером. Либо я был экстрасенсом, либо у меня не было воображения, как это и произошло. Однако мое путешествие по-настоящему началось только в 35 лет.
В 2015 году я устроился на новую работу, на которой регулярно работал после 22:00. В результате я редко видел своих детей в течение недели. Итак, я начал искать секреты автоматизации Excel. Я обнаружил, что, создав небольшое количество простых инструментов, я могу комбинировать их по-разному, чтобы автоматизировать почти все свои обычные задачи. Это означало, что я мог работать меньше часов (и мне повысили зарплату!). Сегодня я обучаю этим техникам других специалистов в рамках нашей программы обучения, чтобы они тоже могли проводить меньше времени на работе (и больше времени со своими детьми и любимыми делами).
Вам нужна помощь в адаптации этого поста к вашим потребностям?
Я предполагаю, что примеры в этом посте не совсем соответствуют вашей ситуации. Мы все используем Excel по-разному, поэтому невозможно написать пост, который удовлетворит все потребности. Потратив время на то, чтобы понять методы и принципы, изложенные в этом посте (и в других местах на этом сайте), вы сможете адаптировать его к своим потребностям.
Но если вы все еще испытываете трудности, вам следует:
- Почитайте другие блоги или посмотрите видео на YouTube по той же теме. Вы получите гораздо больше пользы, открыв для себя собственные решения.
- Спросите «Excel Ninja» в вашем офисе. Удивительно, какие вещи знают другие люди.
- Задайте вопрос на форуме, таком как Mr Excel, или в сообществе Microsoft Answers. Помните, что люди на этих форумах обычно отдают свое время бесплатно. Поэтому постарайтесь сформулировать свой вопрос, убедитесь, что он четкий и лаконичный. Перечислите все, что вы пробовали, и предоставьте скриншоты, сегменты кода и примеры книг.
- Используйте Excel Rescue, моего партнера-консультанта. Они помогают, предоставляя решения небольших проблем Excel.
Что дальше?
Пока не уходите, в Excel Off The Grid можно еще многому научиться. Ознакомьтесь с последними сообщениями:
Автоматический импорт данных из Excel в Word с помощью VBA (2 способа)
Получите БЕСПЛАТНЫЕ расширенные упражнения Excel с решениями!
Реализация VBA — это самый эффективный, быстрый и безопасный метод выполнения любой операции в Excel. В этой статье мы покажем вам 2 эффективных способа, как автоматически импортировать данные из Excel в Word с помощью макроса VBA .
Скачать рабочую тетрадь
2 способа автоматического импорта данных из Excel в Word с помощью VBA
1. Внедрите VBA для автоматического импорта данных из Excel в Word.
2. Импорт данных в файл Word из Excel с помощью кнопки VBA
Важные вещи, которые следует учитывать
Заключение
Статьи по Теме
Скачать рабочую тетрадь
Вы можете скачать бесплатную рабочую тетрадь Excel здесь.
2 способа автоматического импорта данных из Excel в Word с помощью VBA
Следуя этому разделу, вы узнаете, как импортировать данные из файла Excel в файл Word автоматически после запуска кода VBA и простым нажатием кнопки .
Выше приведен пример набора данных, который есть в нашей книге Excel. Мы импортируем эти данные в слово автоматически, используя VBA .
1. Внедрение VBA для автоматического импорта данных из Excel в Word
В этом разделе вы узнаете, как автоматически импортировать данные из файла Excel в файл Word , выполнив код VBA . Для успешного выполнения этого кода в вашей системе должен быть файл word, куда будут импортированы данные из файла Excel.
Чтобы лучше понять, рассмотрите следующее изображение.
В нашей системе уже есть файл Word с именем « Excel to Word» в папке « ExcelDemy» внутри Диск С . Мы будем импортировать данные из нашего файла Excel в этот файл « Excel to Word» с кодом VBA .
Действия, которые необходимо выполнить, приведены ниже.
Шаги:
- В начале нажмите Alt + F11 на клавиатуре или перейдите на вкладку Разработчик -> Visual Basic , чтобы открыть Редактор Visual Basic .
- Далее во всплывающем окне кода нажмите Вставить -> Модуль из строки меню.
- Затем скопируйте следующий код и вставьте его в окно кода.
Sub ActivateWordTransferData() Рабочие листы ("Лист1"). Диапазон ("B2: D14"). Копировать Dim DocApp как объект Dim DocFile как объект Dim DocName как строка При ошибке Возобновить Далее Установить DocApp = GetObject(, "Word.Application") Если Номер Ошибки = 429 Тогда Очистить Установите DocApp = CreateObject("Word. Application") Конец, если DocApp.Visible = Истина DocName = "C:\ExcelDemy\Excel в Word.docx" Если Dir(DocName) = "" Тогда MsgBox "Файл " & DocName & vbCrLf & "не найден" & vbCrLf & "C:\ExcelDemy\.", vbExclamation, "Документ не существует." Выйти из подпрограммы Конец, если DocApp.Активировать Установить DocFile = DocApp.Documents(DocName) Если DocFile не имеет значения, тогда установите DocFile = DocApp.Documents.Open(DocName) DocFile.Активировать DocFile.Range.Paste DocFile.Сохранить DocApp.Выход Установить DocFile = Ничего Установить DocApp = Ничего Application.CutCopyMode = Ложь Конец суб
Теперь ваш код готов к запуску.
Теперь рассмотрим часть кода, показанную на изображении ниже.
В строке 13 кода мы написали DocName = «C:\ExcelDemy\Excel to Word.docx» .
Здесь, C:\ExcelDemy\Excel to Word.docx — это путь к файлу слов , который есть в нашей компьютерной системе — на диске C, папка «ExcelDemy», имя файла слова «Excel to Word. docx» . В этой строке кода вы должны указать адрес пути , который содержит ваш файл Word .
Аналогично, в строку 15 кода вносим соответствующее изменение .
У вас должен быть существующий текстовый файл , куда вы импортируете данные из рабочей книги Excel, и вы должны правильно написать адрес каталога файла в коде. В противном случае вы получите « Файл не найден » и/или « Документ не существует ».
- Теперь, когда вы написали код без ошибок, нажмите F5 на клавиатуре или в строке меню выберите Run -> Run Sub/UserForm . Вы также можете просто щелкнуть маленький значок «Выполнить» в строке подменю, чтобы запустить макрос.
После успешного выполнения кода вернуться к файлу word , чтобы проверить, скопировались ли туда данные из файла Excel или нет.
Как видно из изображения выше, точные данные из нашей книги Excel были автоматически скопированы в файл Word .
Объяснение кода VBA
Рабочие листы («Лист1»). Диапазон («B2:D14»). и диапазон (« B2:D14 » — это диапазон, в котором хранятся данные), который будет импортирован.Dim DocApp как объект Dim DocFile As ObjectОбъявите объектных переменных для приложения word и файла word .
Dim DocName As StringОбъявите строковую переменную для имени файла и пути к каталогу .
При ошибке Возобновить далееЕсли возникает ошибка , перейдите к следующему оператору .
Установить DocApp = GetObject(, "Word.Application")Передайте приложение word в функцию GeObject в качестве параметра и сохраните это значение в определенной переменной приложения . GetObject требует два параметра, первый необязательный, а второй обязательный.
Если Номер Ошибки = 429 Тогда Err.ClearЕсли компонент не может создать объект (номер ошибки 429 ), то объект будет сброшен .
Установить DocApp = CreateObject("Word.Application") Конец, еслиСоздать новый экземпляр приложения Word . Затем выход условие.
DocApp.Visible = TrueЧтобы сделать приложение видимым .
DocName = "C:\ExcelDemy\Excel to Word.docx"Сохранение адреса пути для нашего файла Word.
Если Dir(DocName) = "" Тогда MsgBox "Файл " & DocName & vbCrLf & "не найден" & vbCrLf & "C:\ExcelDemy\.", vbExclamation, "Документ не существует." Выйти из подпрограммы Конец, еслиЕсли адрес файла не совпадает или найден , возвращается сообщение об ошибке . Затем выход процедура и условие.
DocApp.ActivateАктивировать ранее созданный экземпляр приложения word .
Установить DocFile = DocApp.Documents(DocName)Объявить файл слов в определенной переменной.
Если DocFile ничто, тогда установите DocFile = DocApp.Documents.Open(DocName)Если файл не открыт , то мы открываем его.
DocFile.ActivateЧтобы активировать файл word.
DocFile.Range.PasteВ вставить скопированный диапазон из файла Excel в файл word.
DocFile.SaveАвтоматически сохранять файл word после импорта данных из рабочей книги Excel.
DocApp.QuitПосле импорта данных закройте файл word.
Установить DocFile = Ничего Установите DocApp = NothingДля освободите память , выделенную для двух объектных переменных.
Application.CutCopyMode = FalseУдаляет выделение из диапазона.
Подробнее: Как импортировать данные из текстового файла в Excel (3 метода)
Аналогичные показания
- Код VBA для преобразования текстового файла в Excel (7 методов)
- Как импортировать текстовый файл с несколькими разделителями в Excel (3 метода)
- Как автоматически преобразовать текстовый файл в Excel (3 подходящих способа)
- Excel VBA: автоматическое получение данных с веб-сайта (2 метода)
- Автоматический перенос данных с одного листа Excel на другой с помощью функции ВПР
2. Импорт данных в файл Word из Excel с помощью кнопки VBA
В этом разделе мы узнаем, как импортировать данные из книги Excel в файл Word, просто нажав кнопку в VBA .
Для этого нам нужно сначала создать кнопку . Итак, давайте посмотрим, как это сделать.
Действия по созданию кнопки для импорта данных в Word из Excel:
- Чтобы назначить кнопку в нашем наборе данных, перейдите на вкладку Разработчик .
- Оттуда нажмите Вставить и выберите Кнопка под Группа элементов управления ActiveX .
- Будет плюс символ (+) . Перетащите символ , чтобы создать кнопку любого размера в любом месте электронной таблицы.
- После выпуска это будет первый вид нашей кнопки VBA .
- Чтобы изменить кнопку, щелкните ее правой кнопкой мыши . Из появившегося списка выберите Properties . Убедитесь, что у вас есть Design Mode на из группы Controls в строке меню. Чтобы включить или выключить Desing Mode , вам просто нужно щелкнуть по нему.
- A Свойства Откроется всплывающее окно. Напишите имя , которое вы хотите, чтобы ваша кнопка отображалась в заголовке . Мы назвали нашу кнопку « Click to Convert» , и вы можете указать любое имя, которое хотите.
Вы можете изменять различные свойства кнопки из окна свойств , но поскольку это не является целью данной статьи, мы опускаем дальнейшее изменение кнопки.
С другой стороны, мы создали кнопку для импорта данных из одного типа файла в другой, верно? Таким образом, процессы стилизации кнопок являются необязательными , вы можете сделать это, если хотите, или можете пропустить. Кнопка все равно будет работать, даже если выглядит непривлекательно . Или не будет? Давайте выясним это.
Шаги для выполнения макроса VBA:
- Позже, чтобы назначить код VBA в кнопке, щелкните правой кнопкой мыши кнопку и выберите View Code из появившейся опции. Вы также можете дважды щелкнуть по кнопке , чтобы перейти в окно кода.
- После двойного щелчка (или щелчка правой кнопкой мыши, какой бы процесс вы ни выбрали) вы будете перенаправлены в окно автоматически сгенерированного кода с парой автоматически сгенерированных строк кода.
- Затем скопируйте следующий код и вставьте его в окно кода.
Частная подпрограмма CommandButton1_Click() Затемнить iRange как Excel.Range Dim DocApp как Word.Application Dim DocFile как Word.Document Dim WordData как Word.Table Установить iRange = ThisWorkbook.Worksheets("Лист2"). Range("B2:D14") При ошибке Возобновить Далее Установить DocApp = GetObject(class:="Word.Application") Если DocApp ничего не значит, установите DocApp = CreateObject(class:="Word.Application") DocApp.Visible = Истина DocApp.Активировать Установить DocFile = DocApp.Documents.Add iRange.Копировать DocFile.Paragraphs(1).Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False Установить WordData = DocFile.Tables(1) WordData. Аутофитбехавиор (вдаутофитвиндов) Конец суб
Убедитесь, что вы не допустили ошибок при изменении кода в соответствии с вашим набором данных. Например, измените « Sheet2 » в соответствии с именем вашего листа и « B2:D14 » в соответствии с диапазоном на вашем листе.
- Если вы написали код правильно, то сохраните макрос.
- Затем вернитесь к интересующему рабочему листу (где находятся ваши данные) и нажмите на кнопку , чтобы проверить, действительно ли она работает или нет. Но перед нажатием кнопки не забудьте отключить режим проектирования из группы Элементы управления в строке меню.
- Если вы выключите Design Mode (чтобы включить или выключить Design Mode , вам просто нужно щелкнуть на нем), теперь нажмите кнопку .
Как вы можете видеть на изображении выше, есть новый файл слова , созданный с точными данными из книги Excel , просто нажатием кнопки в Excel VBA .
Объяснение кода VBA
Dim iRange As Excel.Range Dim DocApp как Word.Application Dim DocFile как Word.Document Dim WordData As Word.Table
Сначала объявите переменные и объекты для хранения диапазона и управления текстовым приложением .
Установите iRange = ThisWorkbook.Worksheets("Лист2").Range("B2:D14")
Затем сохраните имя рабочего листа (« Лист2 » — это имя листа в нашем наборе данных) и диапазон ( « B2:D14 » — это диапазон, в котором хранятся данные, которые будут импортированы в определенную переменную диапазона .
При ошибке Возобновить далее
Если возникает ошибка , перейдите к следующему оператору .
Установить DocApp = GetObject(class:="Word.Application")
После этого передайте word application в функцию GetObject в качестве параметра и сохраните это в определенной прикладной переменной . Это можно сделать с помощью специальной ссылки « class » с помощью команды VBA GetObject .
Если DocApp ничего не значит, тогда установите DocApp = CreateObject(class:="Word. Application")
Если файл не открыт , то мы открываем его, создавая экземпляр слова приложение .
DocApp.Visible = True
Сделать приложение видимым .
DocApp.Activate
Чтобы активировать файл word.
Set DocFile = DocApp.Documents.Add
Позже создайте новый документ или файл внутри приложения word .
iRange.Копия DocFile.Paragraphs(1).Range.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=False
Для скопируйте и вставьте диапазон в новую таблицу в файле Word. И выполняемые здесь действия будут такими:
- Таблица будет несвязанной .
- Исходный формат будет форматом Excel , а не форматом Word.
- Текст не будет использовать расширенный текстовый формат .
Задать WordData = DocFile.Tables(1) WordData.AutoFitBehavior (wdAutoFitWindow)
Если диапазон Excel шире, чем документ, то эти строки кода автоматически подгонят новые данные, чтобы они соответствовали диапазону полей вновь созданного файла Word.
Подробнее: Как извлечь данные из Excel в Word (4 способа)
Важно учитывать
Если вы получаете сообщение об ошибке word.application notdefined , выполните действия, указанные ниже.
- Выберите Tools -> References… в строке меню редактора кода.
- A Ссылки – Появится всплывающее окно VBAProject . Оттуда отметьте поле Microsoft Word 16.0 Object Library .
- Позже нажмите OK .
Это добавит ссылку на библиотеку объектов Word в ваш проект, и вы избавитесь от ошибки, если снова выполните код.