Как из Excel заменить данные в Word?

Автор VladKo, 11.10.2011, 09:20

« назад - далее »

VladKo

Находясь на определённой строке в Excel (в примере: в строку 2, 3 или 4), необходимо сформировать документ Word, заменив в нем метки {label1} и {label2} на данные из соответствующей строки Excel. Например, из строки 3 найти {label1} и заменить на "aa" и {label2} - на "bb".
В макросе1 Excel документ Word открывается, а "найти и заменить" игнорируется! Прошу помощи.

Пробовал использовать:
1.слияние;
2.копирование со связью с последующим разрывом связи.
Работает, но теряются все перекрёстные ссылки в документе Word, что недопустимо.

exceleved

#1
1. Настоятельно рекомендую в редакторе VBA установить галку Tools - Options - Editor - Require variable declaration.
В начале каждого нового модуля редактор будет вставлять Option Explicit, и это сэкономит Вам много времени и нервов при отладке кода.
В данном случае компилятор сказал бы, что не объявлена переменная wdFindContinue, потому что сам по себе VBA Excel не знает констант Word'а. Для решения проблемы можно выяснить значение этой константы в VBA Word и написать
.Wrap = 1 'wdFindContinue
Или можно в Tools - References подключить библиотеку "Microsoft Word 12.0 Object Library", тогда VBA Excel будет знать константы Word'а. Но на другой версии Офиса может не заработать. Поэтому первый способ мне больше нравится.

2. Можно обойтись без поиска. Определите в doc-е закладки, скажем, label1 и label2 и задавайте им текст:
wd.activedocument.bookmarks("label1").range.text="111"

VladKo

С первым вариантом не разобрался. Код прописал.  Библиотеку "Microsoft Word 12.0 Object Library" подключил.  "Найти и заменить" - не выполняется.

Зато второй вариант - то, что надо!  Я даже не догадывался, что можно обойтись без поиска. С закладками и работать удобнее. Выручили! Большое Вам СПАСИБО за полезный ответ.

EducatedFool

Вдруг кому пригодится...

Программа для заполнения документов данными из таблицы Excel (из Excel в Word)

--------------------
Надстройка предназначена для формирования (подготовки) документов по шаблонам, с заполнением созданных файлов данными из текущей книги Excel.

В качестве шаблонов могут выступать следующие типы файлов:

  • документы Word (расширения DOC, DOCX, DOCM)
  • шаблоны Word (расширения DOT, DOTX, DOTM)
  • книги Excel (расширения XLS, XLSX, XLSM, XLSB)
  • шаблоны Excel (расширения XLT, XLTX, XLTM)
  • текстовые документы (расширения TXT, DAT, XML и т.д.)
В качестве исходных данных для заполнения, используется открытый в Excel файл (с таблицей, содержащей строку заголовка)

Количество шаблонов документов не ограничено
--------------------------------
В каких случаях вам может пригодиться эта надстройка:

  • если у вас в таблице Excel хранится список контрагентов (с их реквизитами), и вы хотите нажатием одной кнопки формировать договоры, акты или коммерческие предложения для каждого из них
  • если в вашей таблице Excel хранятся паспортные данные сотрудников, и вам необходимо быстро сформировать по шаблону приказы или прочие документы в формате Word, заполнив созданные документы данными сотрудников
  • подготовить письма, уведомления, грамоты в формате PDF или Word, заполнив созданные файлы информацией с листа Excel
  • и т.д. и т.п. - надстройку можно применять для создания любых документов на основе данных из Excel
--------------------------------

Скачать надстройку можно здесь:
http://excelvba.ru/programmes/FillDocuments