Vba: как использовать функцию поискпоз с датами
Вы можете использовать следующий синтаксис, чтобы использовать функцию ПОИСКПОЗ для поиска даты в VBA:
SubMatchDate ()
'attempt to find date in range
On Error GoTo NoMatch
MyMatch = WorksheetFunction.Match(CLng(CDate(" 4/15/2023 ")), Range(" A2:A10 "), 0)
MsgBox (MyMatch)
End
'if no date found, create message box to tell user
NoMatch:
MsgBox (" No Match Found ")
End
End:
End Sub
В этом конкретном примере дата 15.04.2023 ищется в диапазоне A2:A10 .
Если дата найдена, появляется окно сообщения, сообщающее пользователю, какая строка диапазона содержит дату.
Если дата не найдена, появляется окно сообщения с сообщением «Совпадения не найдены», чтобы пользователь знал, что дата не существует в диапазоне.
В следующем примере показано, как использовать этот синтаксис на практике.
Примечание . Функция CDate преобразует текстовую строку в дату в VBA.
Пример. Использование функции ПОИСКПОЗ с датами в VBA
Предположим, у нас есть следующий список дат в диапазоне A2:A10 в Excel:
Мы можем создать следующий макрос, чтобы найти номер строки, содержащей дату 15.04.2023 в диапазоне A2:A10 :
SubMatchDate ()
'attempt to find date in range
On Error GoTo NoMatch
MyMatch = WorksheetFunction.Match(CLng(CDate(" 4/15/2023 ")), Range(" A2:A10 "), 0)
MsgBox (MyMatch)
End
'if no date found, create message box to tell user
NoMatch:
MsgBox (" No Match Found ")
End
End:
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Окно сообщения сообщает нам, что дата 15.04.2023 была найдена в 7-й строке диапазона A2:A10 .
Обратите внимание: если бы мы вместо этого искали дату 25.04.2023 , мы получили бы следующий результат:
В окне сообщения сообщается, что дата 25.04.2023 не найдена в диапазоне.
Примечание . Полную документацию по методу Match в VBA можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как использовать XLOOKUP
VBA: как использовать сопоставление индексов
VBA: как использовать INDEX MATCH с несколькими критериями