VBA从一个excel搜索到另一个excel并显示单元格地址

时间:2016-09-28 15:08:44

标签: vba excel-vba excel

我有两个excel文件。我正在使用唯一的电子邮件ID在另一个文件中搜索数据。我正在逐个从一个excel文件中获取电子邮件ID并在另一个excel文件中搜索。找到数据后,我想要单元格地址。 我收到“MsgBox cell.Address”代码错误为“对象变量或未设置块变量”。请协助

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

1 个答案:

答案 0 :(得分:0)

在这种情况下,最有可能出现错误,因为Find方法找不到匹配项,因此没有任何内容可以返回。从VBA开始使用Find方法可能很棘手,尤其是在查看xlWhole时。你确定另一张表中有匹配值吗?你确定这场比赛是准确的吗?等等。即使合并的单元格也可以抛出Find方法。

通常使用工作表函数会减慢速度,但在这种情况下,最好使用MATCH函数查找匹配的行,然后将该值返回到单元格地址。

祝你好运!