Как сделать слияние в ворде из экселя
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Как сделать слияние в ворде из экселя
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Слияние с использованием таблицы Excel
Ниже приведены некоторые советы по подготовке электронной таблицы Excel к слиянию. Проверьте следующее:
- Названия столбцов в электронной таблице должны соответствовать именам полей, которые нужно вставить при слиянии. Например, чтобы обращаться к читателям по именам в документе, потребуются отдельные столбцы для имен и фамилий.
- Все данные, участвующие в слиянии, должны находиться на первом листе электронной таблицы.
- Записи данных, содержащие значения в процентах, денежные значения и почтовые индексы, в электронной таблице должны быть надлежащим образом отформатированы, чтобы приложение Word правильно их прочитало.
- Электронная таблица Excel, которая будет использоваться в слиянии, должна храниться на локальном компьютере.
- Изменения и дополнения необходимо внести в электронную таблицу до ее подключения к документу для слияния в Word.
- Вы можете импортировать данные из электронной таблицы Excel, выполнив импорт из файла с разделителями-запятыми (CSV) или текстового файла (TXT), и создать новую электронную таблицу с помощью мастера импорта текста.
- Дополнительные сведения см. в статье Подготовка источника данных Excel к слиянию в Word.
Подключение и изменение списка рассылки
Подключение к источнику данных Дополнительные сведения см. в статье Источники данных, которые можно использовать для слияния почты.
Изменение списка рассылки
- Нажмите кнопку Изменить список получателей.
- В разделе Получатели слияния снимите флажок рядом с именами тех людей, которым не нужно получать вашу рассылку.
Примечание: Вы также можете отсортировать и отфильтровать список, чтобы облегчить поиск имен и адресов. Дополнительные сведения см. в статье Сортировка данных для слияния и Фильтрация данных для слияния.
Вставка поля слияния
Вы можете вставить одно или несколько полей слияния, которые берут данные из электронной таблицы и помещают в документ.
Для вставки полей слияния на конверт, наклейку, сообщение электронной почты или письмо
- нажмите Рассылки >Блок адреса.
Дополнительные сведения см. в статье Вставка блока адреса - Чтобы добавить строку приветствия, выберите пункт Строка приветствия.
Дополнительные сведения см. в статье Вставка строки приветствия. - Сведения о том, как добавить поля слияния, такие как номера счетов, см. в статье Вставка полей слияния.
- Нажмите кнопку ОК.
- В меню Файл выберите команду Сохранить.
Если вы хотите подробнее узнать о возможностях для настройки сообщения электронной почты, см. статью Слияние электронной почты в Word.
Предварительный просмотр и завершение слияния
Вставив нужные поля слияния, просмотрите результаты, чтобы убедиться, что содержимое в порядке. После этого вы можете завершить процесс слияние.
- Нажмите Рассылки >Просмотр результатов.

- Перемещаясь по записям в источнике данных с помощью кнопок Следующая запись
и Предыдущая запись
, посмотрите, как записи будут отображаться в документе. - Нажмите Найти и объединить >Печать документов или Отправка сообщений электронной почты.

Сохранение слияния
При сохранении документа слияния подключение к источнику данных сохраняется. Вы можете повторно использовать документ слияния для следующей массовой рассылки.
- Откройте документ слияния и нажмите кнопку Да, когда Word спросит, нужно ли сохранить подключение.
Как сделать слияние с Word документом
Что делает макрос: Одним из наиболее востребованных форм интеграции Word с почтой — это слияние. В большинстве случаев рассылки писем относятся к процессу создания одного письма или
документа, а затем его сочетание с отдельным документом, содержащим их имена и адреса.
Например, предположим, что у вас есть список клиентов, и вы хотите, составить письмо с каждым клиентом. При помощи слияния, вы можете написать письмо один раз, а затем запустить функцию слияния в Word, чтобы автоматически создалось письмо для каждого клиента, прикрепляя соответствующий адрес, имя и другую информацию для каждой буквы. Для автоматизации, вы можете использовать макрос для имитации функции почтового слияния из
Excel.
Как макрос работает
Идея относительно проста. Вы начинаете с шаблоном, который содержит закладки, идентифицирующие каждый элемент контактной информации. После того, как шаблон готов, идея состоит в том, чтобы просто перебрать каждого в списке контактов, выбирая
составные части их контактной информации в соответствующие закладки.
Одним из образцов является документ под названием MailMerge.docx. Это документ имеет все закладки, необходимые для запуска примеров кода, показанного здесь.
Обратите внимание, что вам нужно будет установить ссылку на библиотеку объектов Microsoft Word.
Код макроса
Sub SliyanieSWord() 'Шаг 1: Объявляем переменные Dim wd As Word.Application Dim wdDoc As Word.Document Dim MyRange As Excel.Range Dim MyCell As Excel.Range Dim txtAddress As String Dim txtCity As String Dim txtState As String Dim txtPostalCode As String Dim txtFname As String Dim txtFullname As String 'Шаг 2: Запустите Word и добавьте новый документ Set wd = New Word.Application Set wdDoc = wd.Documents.Add wd.Visible = True 'Шаг 3: Установите диапазон вашего списка контактов Set MyRange = Sheets("Список контактов").Range("A5:A24") 'Шаг 4: Начните цикл через каждую ячейку For Each MyCell In MyRange.Cells 'Шаг 5: Присвойте значения каждому компоненту буквы txtAddress = MyCell.Value txtCity = MyCell.Offset(, 1).Value txtState = MyCell.Offset(, 2).Value txtPostalCode = MyCell.Offset(, 3).Value txtFname = MyCell.Offset(, 5).Value txtFullname = MyCell.Offset(, 6).Value 'Шаг 6: Вставьте структуру шаблона документа wd.Selection.InsertFile _ ThisWorkbook.Path & "\" & "MailMerge.docx" 'Шаг 7: Заполните каждую соответствующую закладку с соответствующим 'значением wd.Selection.Goto What:=wdGoToBookmark, Name:="Покупатель" wd.Selection.TypeText Text:=txtFullname wd.Selection.Goto What:=wdGoToBookmark, Name:="Адрес" wd.Selection.TypeText Text:=txtAddress wd.Selection.Goto What:=wdGoToBookmark, Name:="Город" wd.Selection.TypeText Text:=txtCity wd.Selection.Goto What:=wdGoToBookmark, Name:="Регион" wd.Selection.TypeText Text:=txtState wd.Selection.Goto What:=wdGoToBookmark, Name:="Индекс" wd.Selection.TypeText Text:=txtPostalCode wd.Selection.Goto What:=wdGoToBookmark, Name:="Имя" wd.Selection.TypeText Text:=txtFname 'Шаг 8: Очистить все оставшиеся закладки On Error Resume Next wdDoc.Bookmarks("Адрес").Delete wdDoc.Bookmarks("Покупатель").Delete wdDoc.Bookmarks("Город").Delete wdDoc.Bookmarks("Регион").Delete wdDoc.Bookmarks("Имя").Delete wdDoc.Bookmarks("Индекс").Delete 'Шаг 9: Перейти до конца, вставить новую страницу и начать со следующей 'ячейки wd.Selection.EndKey Unit:=wdStory wd.Selection.InsertBreak Type:=wdPageBreak Next MyCell 'Шаг 10: Установить курсор на начало и очистить память wd.Selection.HomeKey Unit:=wdStory wd.Activate Set wd = Nothing Set wdDoc = Nothing End Sub
Как этот код работает
- Шаг 1 объявляет четыре переменные:
- wd переменная объекта, которая выставляет объект Word Application,
- wdDoc является переменной объекта, которая выставляет объект Word Document,
- MyRange содержит диапазон, определяющий список контактов,
- MyCell используется для передачи значений ячеек в строковые переменные.
- Мы также объявляем шесть строковых переменных. Каждый из них имеет компонент — часть информации для каждого контакта в списке контактов.
- Этот шаг открывает Word с пустым документом. Обратите внимание, что мы устанавливаем свойство Visible приложения Word, значение True.
- Шаг 3 определяет каждый контакт в списке контактов. Обратите внимание, что этот диапазон выбирает только первый столбец в таблице контактов. Это происходит потому, что каждая ячейка в диапазоне должна быть передана в индивидуальном порядке к строковым переменным. Выбор только первого столбца дает нам одну ячейку в строке. С этой одной ячейке, мы можем легко настроить курсор вправо или влево, чтобы захватить ячейки вокруг него.
- Этот шаг запускает цикл по каждому контакту, как это определено в установленном диапазоне на шаге 3.
- Шаг 5 использует метод Offset в Excel, чтобы захватить значение каждого поля в конкретной строке. Начнем с диапазона, определенного на шаге 3 (первый столбец в списке
контактов). Затем мы используем Offset для перемещения курсора на определенное число столбцов вправо, чтобы захватить данные в каждом соответствующем поле. Как просмотрено каждое поле, мы относим их значения соответствующей переменной строки. - На шаге 6 мы вводим существующий шаблон в пустой документ в Word. Это равносильно копированию структуры нашего шаблона и вставки его в пустой документ.
- Шаг 7 присваивает значение каждой переменной строки в соответствующей закладке. Как видите в коде, этот шаг выбирает закладку по имени, а затем изменяет текст на значение назначенной переменной строки.
- Цель в шаге 8 удалить любые беспризорные закладки. Если какие-либо закладки задерживаются, мы получаем дубликаты закладок процедура перебирает каждую ячейку.
- На данный момент в коде, мы создали документ для одного контакта в нашем списке контактов. Идея состоит в том, чтобы создать новый пустой документ, чтобы мы могли выполнить ту же процедуру для следующего контакта. Вставка разрыва страницы эффективно создает новый пустой документ. Затем возвращаемся обратно к шагу 5, где мы собираем контактную информацию для следующей строки в списке. Затем на шаге 6, вставьте чистый шаблон (в комплекте с закладками) в новую страницу. И, наконец, мы присваиваем значения в закладки и очищаем. For … Next цикл гарантирует, что этот цикл повторится для каждой строки в списке контактов.
- Шаг 10 очищает память
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.
