2016-09-28 5 views
0

2つのExcelファイルがあります。私は、一意の電子メールIDを持つ別のファイルのデータを検索しています。私は1つのエクセルファイルからメールIDを取得し、別のエクセルファイルを検索しています。データが見つかると、セルのアドレスが必要になります。 "MsgBox cell.Address"コードで "オブジェクト変数またはブロック変数が設定されていません"というエラーが表示されます。助けてくださいVBAからExcelまで検索するとExcelアドレスが表示されます。

Dim myFileNameDir As String 
Dim myFileNameDir2 As String 
Dim ws As Worksheet 
Dim ws2 As Worksheet 
Dim emailID As String 
Dim cell As Range 
Dim II As Integer 
Dim III As Integer 

myFileNameDir2 = TextBox2.Value 
Workbooks.Open Filename:=myFileNameDir2, UpdateLinks:=0 
Set ws2 = Worksheets(1) 

myFileNameDir = TextBox1.Value 
Workbooks.Open Filename:=myFileNameDir, ReadOnly:=True, UpdateLinks:=0 
Set ws = Worksheets(1) 


II = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row 

For III = 2 To II 
emailID = ws2.Cells(III, "D").Value 

Set cell = ws.Range("AA2:AA1048576").find(emailID, LookAt:=xlWhole) 
MsgBox cell.Address 

Next III 

答えて

0

この場合、Findメソッドが一致するものが見つからないため、返すものがないため、このエラーが発生する可能性があります。 Findメソッドは、特にxlWholeを見るとき、VBAから作業するのが難しい場合があります。他のシートに値が一致していますか?マッチが正確だと確信していますか?マッチしたセルでも、Findメソッドがオフになることがあります。

通常、ワークシート関数を使用すると処理が遅くなりますが、この場合、MATCH関数を使用して一致する行を見つけて、その値をセルアドレスに戻すことをお勧めします。

幸運を祈る!

関連する問題