Как получить данные из Excel и объединить их в Word с помощью MailMerge? - PullRequest
0 голосов
/ 19 сентября 2019

Попытка получить данные из Excel и объединить их в Word с помощью MailMerge (точно так же, как это делается в этом видео ).Однако поля не обновляются после запуска этого кода.VBA не выдает никаких ошибок, поэтому похоже, что код в порядке.Не могли бы вы помочь?

Sub getdata()
Dim numRecord As Integer
Dim myName As String

myName = InputBox("Enter the field name and relax!")
Set dsMain = ActiveDocument.MailMerge.DataSource
If dsMain.FindRecord(FindText:=myName, Field:="Fields") = True Then
    numRecord = dsMain.ActiveRecord
End If
End Sub

Примечание: данные в Excel выглядят так:

Fields  First Layer    Second Layer
 CC         5              3

Поэтому, когда кто-то вводит CC в поле ввода, я хочу, чтобы поля first_layer и Second_layer в слове были полученыобновляется до 5 и 3 соответственно.

1 Ответ

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

Если вы запускаете mailmerge из Word, вам на самом деле не нужен VBA для этого - все это можно сделать с помощью поля SKIPIF.Например, следующий код поля делает то же, что и макрос в видео:

{SKIPIF {FILLIN "Имя для слияния" \ o} <> {Имя MERGEFIELD}}

или:

{SKIPIF {FILLIN "Имя для слияния" \ o} <> «Имя»}

Примечание: Пары фигурных скобок (т. е. {{} ') для приведенного выше примера все они создаются в самом документе с помощью Ctrl-F9 (Cmd-F9 на Mac или, если вы используете ноутбук, вам может потребоваться использовать Ctrl-Fn-F9);Вы не можете просто напечатать их или скопировать и вставить их из этого сообщения.Также нецелесообразно добавлять их через какие-либо стандартные диалоги Word.Аналогично, шевроны (то есть «« ») являются частью фактических полей слияния, которые вы можете вставить из выпадающего меню« Вставить поле слияния »(то есть вы не можете печатать или вставлять их из этого сообщения, либо).Пробелы, представленные в полевых конструкциях, являются обязательными.

...