Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Excel中获取数据并使用MailMerge将其合并到Word中?_Excel_Vba_Ms Word_Mailmerge - Fatal编程技术网

如何从Excel中获取数据并使用MailMerge将其合并到Word中?

如何从Excel中获取数据并使用MailMerge将其合并到Word中?,excel,vba,ms-word,mailmerge,Excel,Vba,Ms Word,Mailmerge,尝试从Excel中获取数据并使用MailMerge将其合并到Word中(就像在本例中所做的那样)。 但是,运行此代码后,字段不会得到更新。VBA没有抛出任何错误,所以代码看起来很好。你能帮忙吗 Sub getdata() Dim numRecord As Integer Dim myName As String myName = InputBox("Enter the field name and relax!") Set dsMain = ActiveDocument.MailMerge.D

尝试从Excel中获取数据并使用MailMerge将其合并到Word中(就像在本例中所做的那样)。 但是,运行此代码后,字段不会得到更新。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时,我希望word中的第一层和第二层字段分别更新为5和3。

如果您正在运行word中的邮件合并,您实际上不需要任何VBA,这一切都可以通过SKIPIF字段完成。例如,以下字段代码的作用与视频中宏的作用相同:

{SKIPIF{FILLIN“要合并的名称”\o}{MERGEFIELD Name}}

或:

{SKIPIF{FILLIN“Name to merge”\o}«Name»}


注意:上述示例中的字段大括号对(即“{}”)都是在文档本身中通过Ctrl-F9(Mac上的Cmd-F9,或者如果使用笔记本电脑,则可能需要使用Ctrl-Fn-F9)创建的;您不能简单地在此邮件中键入或复制粘贴它们。通过任何标准的单词对话添加它们也不切实际。同样,V形符号(即“«»”)是实际合并字段的一部分,您可以从“插入合并字段”下拉列表中插入该字段(即,您也不能从该消息中键入或复制粘贴它们)。现场施工中表示的空间都是必需的

视频的描述包含工作示例文件。这些对你有用吗?不,哈桑,遗憾的是它们不起作用。你有什么版本的MS Office?它是2016版本。