Могу ли я отвязать поля изображения в выходном слиянии почты Word без отсоединения гиперссылок - PullRequest
0 голосов
/ 18 июня 2020

Я выполняю слияние Word из MS Access VBA. Документ содержит как изображения, так и гиперссылки, которые динамически c основаны на исходной таблице слияния почты.

Для преобразования изображений я использую objWord.Fields.Unlink после выполнения mailmerge, но я недавно добавил гиперссылка Dynami c, и код также удаляет эти ссылки.

Для вставки изображений я использую {INCLUDEPICTURE {IF TRUE "{PicturePathFromMailmerge}"} \ d}

Для вставки гиперссылок , У меня есть {HYPERLINK {MERGEFIELD LinkFieldFromMailmerge} * MERGEFORMAT}

Мой код:

    objWORD.MailMerge.Execute

    Set objNEW = objWORD.Application.ActiveDocument

    objNEW.Fields.Unlink

Итак, довольно беспорядочно, но у меня нет большого опыта использования VBA для документов Word .

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

1 Ответ

0 голосов
/ 19 июня 2020

Простой ответ - вы не можете сделать это с помощью кодирования полей. Требуется макрос. Например, как отдельный макрос Word, который перехватывает процесс «Редактировать отдельные документы»:

Sub MailMergeToDoc()
Application.ScreenUpdating = False
Dim i As Long
ActiveDocument.MailMerge.Execute
With ActiveDocument
  For i = .Fields.Count To 1 Step -1
    If .Fields(i).Type <> wdFieldHyperlink Then .Fields(i).Unlink
  Next
End With
Application.ScreenUpdating = True
End Sub
...