Обновить значение MERGEFIELDS в Word с помощью VBA - PullRequest
0 голосов
/ 09 марта 2020

Мне нужно скачать документ Word и отредактировать содержащиеся в нем поля, чтобы сгенерировать окончательный документ с входными данными из формы.

Документ Word содержит много MERGEFIELD и условных выражений, которые мне нужны обновить с новыми значениями. Я попытался l oop через поля, и когда mergefield принадлежит моему списку допустимых полей, замените значение; но он не работает с полями слияния, содержащимися в условных выражениях.

Для простоты это работает:

Das blablabla zwischen {MERGEFIELD HerrnFrau} {MERGEFIELD Titel} {MERGEFIELD Nachname}. ...

Для условного не:

{IF {MERGEFIELD property} = "yes" {MERGEFIELD HerrnFrau} ....

Dim objWord As Word.Application
Dim objDoc As Word.document
Dim objField As Word.field
Dim idx As Integer

Dim idxField As Long
idxField = 1
With objDoc
    For Each objField In .Fields
        ' Special case
        If objField.Code = " MERGEFIELD hlp_Abs2 " Then
            idx = GetIndexValue(objField.Code, AllFields)
            objField.result.text = "1"
        Else
            ' Check array with field names
            If IsInArray(objField.Code, AllFields) Then
                idx = GetIndexValue(objField.Code, AllFields)
                objField.result.text = AllValues(idx)
            End If
        End If

    Next objField
End With

Как правильно обновить поля документа, чтобы условное содержимое также корректно обновлялось?

...