Макрос для создания документов Word из данных электронной таблицы Excel

Обновлено: 04.07.2024

В основном мы должны составлять повестки дня для наших конференций (которые посещают многие фирмы), и это обсуждение за круглым столом, на котором одновременно рассматривается одна фирма. Общий вид:

Моей компании приходится делать это часто, а информация о фирме и ее представителях хранится в файлах Excel. Есть ли способ быстро сгенерировать этот документ?

Единственный возможный ответ на ваш вопрос на данный момент — «вероятно». Для более точного ответа нам нужно знать, каков ожидаемый результат, что именно вы пробовали до сих пор и как это не оправдало ожиданий. Некоторые примеры данных также будут полезны.

Я думаю, что Mail Merge, вероятно, имеет возможность сделать это, но я не знаком с его точными функциями.

Для слияния исходные данные будут в Excel в столбцах для фирмы, представителя, точки 1, точки 2 и т. д. (аналогично столбцам для фирмы, почтового адреса, города, штата и почтового индекса). Другой вариант — отформатировать лист Excel, чтобы он выглядел как повестка дня. Используйте формулы для копирования информации с других листов на лист повестки дня. Распечатайте или сохраните в формате PDF или вставьте в Word. Другой вариант — связать текст документа Word с Excel. В Excel выберите и скопируйте. В Word щелкните Главная > Вставить > Связать и использовать целевые стили. Для получения дополнительных сведений выполните поиск по запросу «Копировать из Excel в другую программу Office».

4 ответа 4

Да, это можно сделать с помощью слияния.

Откройте шаблон повестки дня и перейдите на ленту рассылок. Перейдите к «Выбрать получателей» и выберите «Использовать существующий список» в раскрывающемся меню. Как только это будет связано, вы можете вставлять поля в документ. Перейдите к «Вставить поле слияния», чтобы выбрать поля для вставки. Когда вы закончите, перейдите в «Предварительный просмотр результатов», чтобы просмотреть документ. В это время вы захотите выбрать правильную запись, вы можете либо пролистать записи, используя стрелки, чтобы найти ее, либо перейти к «Редактировать список получателей» для пользовательского списка. После этого перейдите в «Завершить и объединить» и выберите «Редактировать отдельные документы» и выберите вариант «Текущая запись» (если у вас их несколько, я не рекомендую делать их все вместе, потому что вам все равно придется их разделять). в отдельные файлы). Это создаст документ, и все, что вам нужно сделать, это сохранить его.

У Эрика есть база данных Excel с информацией о компании. Он хочет использовать макрос Excel для копирования адресов и информации из базы данных в разные документы Word. Эрику любопытно, как он может заставить макрос Excel открывать определенный документ Word, в который будет вставлена ​​информация.

Один из способов выполнить эту задачу — просто не использовать Excel. Вместо этого используйте функцию слияния почты Word для извлечения информации из базы данных Excel. Этот подход работает лучше всего, если вы создаете документ на основе четко определенной информации. Однако если вам нужно открыть ряд документов и скопировать данные из базы данных Excel в документы, слияние не поможет.

У Word есть специальное название для использования макросов для работы с различными приложениями Office: Office Automation. Создание макросов Office Automation немного сложнее, чем создание макроса, который будет работать только в определенном приложении, например в Excel. Одна из вещей, которую вы можете сделать, это загрузить бесплатный файл справки, который содержит много информации о приложениях Office Automation. Вы можете загрузить файл на следующей странице Microsoft:

Основной процедурой открытия документа Word из макроса Excel является создание объекта, который ссылается на приложение Word, а затем использование этого объекта для открытия документа. Следующий код иллюстрирует эту концепцию:

Вам потребуется изменить путь и имя документа, который вы хотите открыть, но этот код очень хорошо демонстрирует, что нужно сделать, чтобы открыть документ. Как написано, документ Word (на самом деле, все приложение Word) не будет виден на экране. Если вы предпочитаете, чтобы приложение было видимым, вы должны использовать эту строку кода в начале макроса:

Другой подход к работе с файлом Word из макроса Excel заключается в использовании DDE и функции SendKeys для копирования информации. Рассмотрим следующую команду DDE:

Метод DDEInitiate использует два свойства: приложение и тему. Свойство app указывает на приложение, которое вы открываете через DDE. Типичными примерами могут быть «calc» для калькулятора или «WinWord» (в данном случае) для приложения Word. Свойство темы указывает полный путь к файлу документа, который вы открываете. В этом случае полный путь содержится в переменной FullPath.

С помощью этого метода вы можете открыть документ, а затем использовать SendKeys для копирования информации в этот документ:

Метод Copy используется для копирования информации в буфер обмена, а затем SendKeys использует ^v (Ctrl+V) для вставки информации в документ Word, открытый с помощью DDEInitiate.

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию. Нажмите здесь, чтобы открыть эту специальную страницу в новой вкладке браузера.

ExcelTips – это экономичное обучение работе с Microsoft Excel. Этот совет (2423) относится к Microsoft Excel 97, 2000, 2002 и 2003.

Биография автора

На его счету более 50 научно-популярных книг и множество журнальных статей. Аллен Уайатт является всемирно признанным автором. Он является президентом Sharon Parq Associates, компании, предоставляющей компьютерные и издательские услуги. Узнайте больше об Аллене.

Мне нужен макрос для Excel, который будет извлекать данные, скажем, из столбца A, столбца C, столбца D, столбца E и, возможно, из пары других, и вводить эту информацию в документ Word... с данными в списке. как показано ниже. затем сохраните этот документ с именем из столбца A.

В ее файле будет 300 строк. поэтому мне нужно будет создать документы на 300 слов, каждый из которых будет сохранен с именем из столбца А (это имя клиента)

После создания документа Word мне нужно создать для него гиперссылку в столбце B

У меня есть файл меньшего размера всего с 7 строками, который я буду использовать для тестирования, прежде чем мы применим его к большому файлу.

Можете ли вы мне помочь? Я не эксперт по написанию макросов.. Иногда я могу изменить их, чтобы настроить так, как мне нужно.. но не знаю, как написать их с нуля..

В Excel в столбце A будет имя клиента, в столбце C будет адрес, в столбце D будет контакт, а в столбце E будет адрес электронной почты.

когда она попадет в Word Doc, эта информация будет настроена как

*** Адрес электронной почты удален из соображений конфиденциальности ***

затем сохраните документ с именем клиента из столбца A

Эта тема заблокирована. Вы можете подписаться на вопрос или проголосовать за него как полезный, но вы не можете отвечать в этой теме.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Ответы (11) 

* Попробуйте уменьшить номер страницы.

* Пожалуйста, вводите только цифры.

* Попробуйте уменьшить номер страницы.

* Пожалуйста, вводите только цифры.

Я был бы склонен создать отдельный процесс в Excel для создания гиперссылки перед выполнением слияния и использовать этот столбец для именования документа. Это означало бы создание имени файла и пути в столбце B, полученных из столбца A с добавлением пути и расширения. например

=CONCATENATE("D:\My Documents\Merge\",A2,".docx") и перетащите вниз, чтобы заполнить столбец B

затем используйте макрос

Sub Add_Hlinks()
Затемнить lastRow As Long, i As Long
Dim xlSheet As Worksheet
Dim strPath As String
Set xlSheet = ActiveSheet

чтобы добавить гиперссылки.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

Спасибо. Я играл с макросом, который нашел в Интернете. Наконец, вчера поздно вечером он заработал. мой тестовый файл Excel имеет 7 столбцов данных и 6 строк. Наконец-то мне удалось получить макрос для создания документа Word из данных Excel. Я создал лист шаблона, в который он переместил информацию, а затем создал документ Word.Исходный макрос создал сохраненный файл с именем Файл1, Файл2 и т. д. В конце концов я придумал формулировку, позволяющую сохранить документ под именем клиента. Вот макрос, который я использовал после того, как изменил его для собственного использования.< /p>

Затемнить appWD как Word.Application

' Создать новый экземпляр слова и сделать его видимым

Задайте appWD = CreateObject("Word.Application.15")

'Найти последнюю строку с данными в базе данных

Для i = 2 В finalRow

' Скопируйте имя в ячейку B3

Диапазон("A" & i).Цель копирования:=Листы("Шаблон").Range("B3")

' скопировать столбцы данных, транспонировать и вставить в B4:B9

Диапазон("B" & i & ":G" & i).Копировать

' Скопировать данные нового документа в буфер обмена

' говорит слово, чтобы создать новый документ

' говорит слово, чтобы вставить содержимое буфера обмена в новый документ

' сохранить новый документ с последовательным именем файла

appWD.ActiveDocument.SaveAs Имя файла:=Листы("Данные").Range("A" & i).Значение

' закрыть этот новый документ Word

' Закрыть приложение Word

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

2 человека сочли этот ответ полезным

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

это другой макрос, который я нашел во время поиска в Интернете. Он создает документ и создает гиперссылку в поле. Это был только ввод столбца A в документ Word и ничего больше, и я попытался выяснить, как добавить к нему остальные 6 столбцов, но не мог понять, как это написать, поэтому вернулся к попытке изменить другой и, наконец, заработал, за исключением того, что он не создал гиперссылку. Я знаю, что могу делать по одному и создавать гиперссылку после запуска другого макроса для создания документов слова. если я не могу понять, как делать гиперссылки только с помощью макроса. с помощью этого макроса я создал кнопку на листе Excel, а затем вставил макрос..

Спасибо за помощь. Я ценю это. Я сохранил ссылку на ваш веб-сайт, которую вы мне прислали, для почтового слияния и проверю ее позже сегодня.

Добрый день. вот другой макрос, который я пытался отредактировать (извините... не знаю, почему он подчеркнул строки. они не подчеркнуты в моем текстовом документе, где я его сохранил... он вставил строки, когда разместил его здесь... )

Частная подпрограмма CommandButton1_Click()

Тусклый rngFirst как диапазон

Затемнить rngLast As Range

Затемнить rngCell как диапазон

Затемнить приложениеWord As Word. Приложение

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

Мне нужна помощь, как запустить макрос.

Я новичок в marcos и никогда раньше им не пользовался.

У меня есть шаблон Word, в который мне нужно передать эти данные Excel, и каждый документ Word Word должен быть сохранен отдельно и с данными из одного из столбцов.

не могли бы вы подсказать, как мне действовать дальше?

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

мой друг хотел иметь возможность создать текстовый документ для клиентов на своей электронной таблице. Я создал таблицу данных с 8 столбцами.. для теста я использовал только 8 строк. верхняя строка была заголовками. на листе 2 я

создал один столбец, в котором перечислены заголовки каждой строки из Листа 1..

вот как я набрал макрос. используйте это как образец и введите строки и столбцы, которые вам нужны, на листах Excel и запустите тест, чтобы убедиться, что он работает. Это то, что я сделал. Я не эксперт в макросах, поэтому я взял то, что кто-то использовал, изменил его для своих целей и тестировал, пока не заработало.

Экономьте время путем извлечения существующих данных из Excel». /><br /></p>
<p>Электронные таблицы Excel могут содержать множество типов данных, включая текст, расчеты и диаграммы. Если вам нужно использовать какую-либо эту информацию в документах Word вашего бизнеса, существуют различные методы, которые вы можете использовать для извлечения ее из существующего рабочего листа. Вы можете копировать и вставлять объекты, чтобы связать или встроить данные из рабочего листа, или вы можете объединить данные из таблицы Excel в форму Word. Выбранный вами метод зависит от желаемого результата.</p>
<h2>Связать или внедрить данные</h2>
<p>Откройте рабочий лист Excel, из которого вы хотите извлечь данные, а также документ Word, в который вы хотите вставить или внедрить данные.</p>
<p>Выберите диаграмму, диапазон или другие данные в Excel, которые вы хотите использовать в Word. Нажмите «Ctrl-C» или нажмите «Копировать» в группе «Буфер обмена» на вкладке «Главная».</p>
<p>Перейдите к документу Word. Нажмите стрелку раскрывающегося списка

Выберите «Вставить» и выберите «Объект диаграммы Microsoft Office Excel», чтобы внедрить данные. Выберите «Вставить ссылку» и выберите «Объект диаграммы Microsoft Office Excel», чтобы связать данные.

Нажмите "ОК", чтобы вставить извлеченные данные из Excel.

Объединить данные

Откройте пустой документ в Word. Перейдите на вкладку «Рассылки», нажмите «Начать слияние» и выберите «Пошаговый мастер слияния». Выберите «Письма» в разделе «Тип документа» и нажмите «Далее».

Выберите, какой документ вы хотите использовать в качестве формы для извлечения данных Excel, например текущий пустой документ или шаблон. Нажмите "Далее".

Выберите «Использовать существующий список» в разделе «Выбрать получателей» и нажмите кнопку «Обзор». Перейдите к файлу Excel, из которого вы хотите извлечь данные, и нажмите «Открыть». Выберите конкретную таблицу или лист, который вы хотите использовать, и нажмите «ОК». При необходимости отсортируйте или отфильтруйте данные и нажмите "ОК".

Нажмите "Далее". Выберите поля, которые вы хотите объединить с документом, и нажмите кнопку «Сопоставить поля», чтобы сопоставить поля в документе со столбцами в электронной таблице.

Нажмите «Далее», чтобы просмотреть слияние. При необходимости отредактируйте документ, а затем снова нажмите "Далее", чтобы завершить слияние.

Читайте также: