Vba宏无法正常工作

时间:2017-11-18 09:31:32

标签: vba ms-word word-vba

我有一个包含员工数据和Word模板的Excel文件。我已合并邮件并创建了一个宏,要求我提供员工姓名,并根据名称从Excel文件中将该员工的员工详细信息提取到Word文件中。

如果记录来自Excel工作表的从上到下,则宏能够检索记录。但是,任何高于当前检索记录的记录都不会被获取。这真的很麻烦。你能帮忙吗?

以下是我的代码:

Sub getdata()
Dim numRecord As Integer
Dim myName As String
myName = InputBox("Enter Name:")
Set dsMain = ActiveDocument.MailMerge.DataSource
If dsMain.FindRecord(FindText:=myName, Field:="Name") = True Then
numRecord = dsMain.ActiveRecord
End If
End Sub

1 个答案:

答案 0 :(得分:2)

以下是MailMergeDataSource.FindRecord方法documentation的直接引用:

“FindRecord方法仅执行向前搜索。因此,如果活动记录不是数据源中的第一条记录,并且您要搜索的记录位于活动记录之前,则FindRecord方法将不返回任何结果。要确保搜索整个数据源,请将ActiveRecord属性设置为wdFirstRecord。“

根据MailMergeDataSource.ActiveRecord Property documentation,这将是:

With ActiveDocument.MailMerge  
 .DataSource.ActiveRecord = wdFirstRecord 
End With