Приведенный ниже макрос вводит заголовок поля, за которым следует значение поля. Оператор If должен проверять значение поля, и если оно больше 30, дается фактическое значение, в противном случае - ноль.
Вместо того, чтобы отображать значение, если оно истинно, я просто получаю фактический текст, который я набрал, а не его значение.
Sub Macro1()
Dim doc As Word.Document
Dim dtField As Word.MailMergeDataField
Dim sFieldName As String
Dim sFieldActualName As String
Dim j As Integer
Set doc = ActiveDocument
j = 1
For Each dtField In doc.MailMerge.DataSource.DataFields
sFieldActualName = doc.MailMerge.DataSource.FieldNames(j).Name
sFieldName = dtField.Name
Selection.TypeText Text:=sFieldActualName + ": "
'---------------------------------------------------------------------------
doc.MailMerge.Fields.AddIf Range:=Selection.Range, MergeField:= _
sFieldName, Comparison:=wdMergeIfGreaterThan,_
CompareTo:="30", TrueText:="{MERGEFIELD sFieldName}", _
FalseText:="0"
'---------------------------------------------------------------------------
Selection.TypeParagraph
j = j + 1
Next
End Sub
Пожалуйста, дайте мне знать, если мне нужно что-то уточнить.
Изменить: образцы данных, которые я использую из Excel
one two three four five
85 50 63 50 41
52 10 84 10 15
85 25 63 35 10