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… пока. Для этого мы будем использовать следующий процесс:

  1. Включить меню разработчика Word
  2. Запишите макрос Word
  3. Добавьте код в Excel VBA и внесите изменения
  4. При необходимости запишите макросы в Excel
  5. Повторите предыдущие шаги, пока макрос не будет завершен

мастер 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 по-разному, поэтому невозможно написать пост, который удовлетворит все потребности. Потратив время на то, чтобы понять методы и принципы, изложенные в этом посте (и в других местах на этом сайте), вы сможете адаптировать его к своим потребностям.

Но если вы все еще испытываете трудности, вам следует:

  1. Почитайте другие блоги или посмотрите видео на YouTube по той же теме. Вы получите гораздо больше пользы, открыв для себя собственные решения.
  2. Спросите «Excel Ninja» в вашем офисе. Удивительно, какие вещи знают другие люди.
  3. Задайте вопрос на форуме, таком как Mr Excel, или в сообществе Microsoft Answers. Помните, что люди на этих форумах обычно отдают свое время бесплатно. Поэтому постарайтесь сформулировать свой вопрос, убедитесь, что он четкий и лаконичный. Перечислите все, что вы пробовали, и предоставьте скриншоты, сегменты кода и примеры книг.
  4. Используйте 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 в ваш проект, и вы избавитесь от ошибки, если снова выполните код.