Vba: як використовувати функцію match із датами
Ви можете використовувати такий синтаксис, щоб використовувати функцію MATCH для пошуку дати у 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.
Приклад: використання функції MATCH із датами у VBA
Припустімо, у нас є такий список дат у діапазоні A2:A10 в Excel:
Ми можемо створити такий макрос, щоб знайти номер рядка, який містить дату 04/15/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 із кількома критеріями