我有一个包含员工数据和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
答案 0 :(得分:2)
以下是MailMergeDataSource.FindRecord方法documentation的直接引用:
“FindRecord方法仅执行向前搜索。因此,如果活动记录不是数据源中的第一条记录,并且您要搜索的记录位于活动记录之前,则FindRecord方法将不返回任何结果。要确保搜索整个数据源,请将ActiveRecord属性设置为wdFirstRecord。“
根据MailMergeDataSource.ActiveRecord Property documentation,这将是:
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = wdFirstRecord
End With