Можно связать документы Word с содержимым в закладках другого документа, используя поля IncludeText
. Но это означает, что вам нужно сохранить закладки в этом «исходном» документе. Ваш код, как он есть, вероятно, удаляет закладки. Пример того, как вам нужно изменить код, чтобы убедиться, что данные находятся внутри закладки после записи данных в закладку:
Dim doc as Word.Document
Set doc = ActiveDocument
Dim rngConsultantNameCaps As Range
Dim sConsultantNameCaps as String
sConsultantNameCaps = "ConsultantNameCaps"
Set rngConsultantNameCaps = doc.Bookmarks(sConsultantNameCaps).Range
rngConsultantNameCaps.Text = Me.TextName.Value
doc.Bookmarks.Add(sConsultantNameCaps, rngConsultantNameCaps)
Откройте каждый документ (кроме «шаблона данных») и замените каждую закладку на поле:
{ IncludeText "Path and filename" "bookmarkName" }
(Помните, что скобки {} необходимо вставлять с помощью Ctrl + F9 , если вы делаете это вручную.)
Если все документы будут сохранены в одной папке, весь путь не требуется - достаточно имени файла источника. Word автоматически ищет в той же папке исходный файл.
Ссылка также приведет к форматированию символов. Если вы не хотите этого, добавьте переключатель \* CharFormat
к коду поля, чтобы он сохранял формат, примененный к первому символу поля:
{ IncludeText "Path and filename" "bookmarkName" \* CharFormat }
Если имеется несколько документов, возможно, было бы даже целесообразно написать макрос для этого: просто зациклите закладки, сохраните имя закладки, вставьте поле в этом диапазоне с именем закладки.
Документы необходимо будет открывать по отдельности позднее, а поля обновлять (это также можно сделать при их печати).
Обратите внимание, что также возможно использовать поле Link
, но этот тип поля взаимодействует с использованием OLE, что немного «перебивает» для зеркального отображения «простого» текста.