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