Я новичок в VBA и хочу закодировать функцию, которая находит дату, которая хранится в переменной, и возвращает ее адрес.
Это то, что я получил до сих пор
Dim ran As Range
Dim dat As Date
dat = "01.05.2009 15:42:00"
Set ran = Cells.Find(What:=dat, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If ran Is Nothing Then
MsgBox ("no result")
Else
MsgBox (ran.Address)
End If
Когда я запускаю этот фрагмент, он всегда возвращает «нет результата». Однако, когда я не использую переменные и ставлю это следующим образом
Dim ran As Range
Dim dat As Date
Set ran = Cells.Find(What:="01.05.2009 15:42:00", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If ran Is Nothing Then
MsgBox ("no result")
Else
MsgBox (ran.Address)
End If
, он возвращает адрес ячейки, как и ожидалось.
Поскольку я хочу использовать этот фрагмент кода позже в более крупном проектеМне нужно, чтобы это работало с такой переменной, чтобы ее можно было использовать в цикле с серией различных поисков.
Я был бы очень признателен, если кто-то может сказать мне, где я иду не так, или знаетлучший подход к этому.