VBA для поиска из одного excel в другой excel и отображения адреса ячейки

У меня есть два файла excel. Я ищу данные в другом файле с уникальным идентификатором электронной почты. Я беру идентификатор электронной почты из одного файла excel по одному и поиска в другом файле excel. Как только данные будут найдены, мне нужен адрес ячейки.
Я получаю ошибку на » MsgBox cell.Адрес «код как» объектная переменная или с не заданной блочной переменной». Пожалуйста, помогите

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 ответ

  1. Скорее всего, в этом случае ошибка приходит, потому что метод Find не находит совпадения, поэтому нечего возвращать. Метод Find может быть сложным для работы с VBA, особенно при просмотре xlWhole. Вы уверены, что есть совпадающее значение в другом листе? Вы уверены, что матч точный? Так далее. Даже объединенные ячейки могут отбросить метод Find.

    Обычно использование функций листа замедляет работу, но в этом случае лучше всего использовать функцию сопоставления для поиска соответствующей строки, а затем возвращать это значение в адрес ячейки.

    Удачи!