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 із кількома критеріями

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *