Кросс-пост (оригинал): http://www.msofficeforums.com/excel-programming/38959-update-unlink-specific-merge-field-word-doc.html
Привет всем,
В настоящее время у меня есть код, который выполняет слияние почты из моей книги Excel в документ Word. Код также выбирает все в Word Doc, обновляет поля и затем отменяет их связь с слиянием почты.
Код:
strWorkbookName = ThisWorkbook.Path & "\" & ThisWorkbook.Name
Worksheets("Data").Activate
'Opens New Plan Doc Template
Set appWD = CreateObject("Word.Application")
appWD.Visible = True
appWD.Documents.Open Filename:=PlanDocTemplate
ActiveDocument.MailMerge.OpenDataSource Name:=strWorkbookName, _
Format:=wdMergeInfoFromExcelDDE, _
ConfirmConversions:=True, _
ReadOnly:=False, _
LinkToSource:=True, _
AddToRecentFiles:=False, _
PasswordDocument:="", _
PasswordTemplate:="", _
Revert:=False, _
Connection:="Entire Spreadsheet", _
SQLStatement:="SELECT * FROM `Data$`", _
SQLStatement1:="", _
SubType:=wdMergeSubTypeOther
appWD.Visible = True
appWD.Selection.WholeStory
appWD.Selection.Fields.Update
appWD.Selection.Fields.Unlink
'New Code Here to update & unlink <<footer>> merge field
ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument
appWD.ActiveDocument.Save
Пока это прекрасно работает, но нижний колонтитул слова doc также имеет поле слияния «нижний колонтитул», которое не выбирается с помощью кода appWD.Selection.WholeStory (потому что он расположен в нижнем колонтитуле). Я предполагаю, что есть способ выбрать весь нижний колонтитул и appWD.Selection.Fields.Update & .Unlink, но тогда он захватит автоматический номер страницы внизу и оставит его статичным, что мне не нужно. И.Е. каждый номер страницы внизу будет Page 1, Page 1, Page 1 ...
Есть ли способ указать Excel VBA обновлять и отменять связь только с отдельным полем слияния "нижний колонтитул"?
Спасибо всем,
Рич