2017-11-18 157 views
0

我有一个包含员工数据和Word模板的Excel文件。我将邮件合并并创建了一个宏,它向我询问员工姓名,并根据姓名从Excel文件中将该员工的员工详细信息提取到Word文件。VBA宏无法正常工作

如果记录来自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 

回答

2

下面是从MailMergeDataSource.FindRecord方法documentation直接引用:

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

此,根据MailMergeDataSource.ActiveRecord物业documentation将是这样的:

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

太谢谢你了。它为我工作!非常感谢。 – bishwarup990

+0

不用担心。请接受作为答案,如果它的工作。如果有什么遗漏,让我们知道,我自己或其他人可能会提供更多的细节。 – QHarr