Как добавить UpdateAllFields для моего документа Word в мои макросы VBA в Excel? - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть макрос Excel, который извлекает данные из моей книги, открывает шаблон Word как новый и обновляет некоторые имеющиеся у нас закладки.

Затем мы выбираем Все и нажимаем Обновить все, чтобы заполнить оставшуюся частьдокумент с информацией с использованием перекрестных ссылок.

Вместо того, чтобы вручную выполнять «Обновить все поля», я хотел бы просто добавить его в мои макросы Excel, чтобы после обновления закладок это происходило автоматически.

Вот небольшая версия кода:

Private Sub CreateTemplate1(tPath As String, r As Integer)
Dim wdApp As Object
Dim wdDoc As Object

On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If wdApp Is Nothing Then Set wdApp = CreateObject("Word.Application")
On Error GoTo 0

wdApp.Visible = True
'wdApp.DisplayAlerts = False
Set wdDoc = wdApp.Documents.Open(FileName:=tPath)

With wdDoc
    Dim obj_BMRange     As Object

    Set obj_BMRange = wdDoc.Bookmarks("STPNumber").Range
    WriteToBookmarkRetainBookmark obj_BMRange, Range("L1").Value

    Set obj_BMRange = wdDoc.Bookmarks("SiteAddress").Range
    WriteToBookmarkRetainBookmark obj_BMRange, Range("C" & r).Value
End With
End Sub

Function WriteToBookmarkRetainBookmark(rng As Object, content As String)
Dim sBkmName As String

sBkmName = rng.Bookmarks(1).Name
rng.Text = content
rng.Document.Bookmarks.Add sBkmName, rng
End Function

Пожалуйста, дайте мне знать, куда добавить код Обновить все поля.

1 Ответ

0 голосов
/ 28 сентября 2019

Это обновит все поля в wdDoc

    Dim field As field
    For Each field In wdDoc.Fields
        field.Update
    Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...