2017-11-18 149 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