Эй, все. Я постараюсь сделать это кратким и простым.:)
У меня
- 40 или около того печатные словарные документы с рядом полей (имя, адрес и т.д.), которые необходимо заполнить. Это исторически сделано вручную, но оно повторяется и громоздко.
- Книга, в которой пользователь заполнил огромный набор информации о человеке.
Мне нужно
- Способ программирования (из Excel VBA) открывает эти шаблонные документы, редактирует значение полей из разных именованных диапазонов в рабочей книге и сохраняет заполненные шаблоны в локальной папке.
Если бы я использовал VBA для программного редактирования определенных значений в наборе электронных таблиц, я бы отредактировал все эти электронные таблицы, чтобы они содержали набор именованных диапазонов, которые можно было использовать в процессе автозаполнения, но я не знаю любая функция "named field" в документе Word.
Как я могу редактировать документы и создавать процедуру VBA, чтобы я мог открыть каждый документ, найти набор полей, которые могут быть заполнены, и заменить значение?
Например, что-то, что работает:
for each document in set_of_templates
if document.FieldExists("Name") then document.Field("Name").value = strName
if document.FieldExists("Address") then document.Field("Name").value = strAddress
...
document.saveAs( thisWorkbook.Path & "\GeneratedDocs\ " & document.Name )
next document
Вещи, которые я рассмотрел:
- Слияние почты - но этого недостаточно, потому что он требует открытия каждого документа вручную и структурирования книги в качестве источника данных, я вроде как хочу наоборот. Шаблоны являются источником данных, и рабочая тетрадь выполняет итерацию через них. Кроме того, слияние почты предназначено для создания множества идентичных документов с использованием таблицы разных данных. У меня есть много документов, которые используют одни и те же данные.
- Использование текста заполнителя, например "# NAME #", и открытие каждого документа для поиска и замены. Это решение, к которому я бы прибегнул, если не предлагается ничего более элегантного.