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 с несколькими критериями

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *