Vba: jak używać funkcji dopasuj z datami
Aby użyć funkcji DOPASUJ w celu znalezienia daty w VBA, możesz użyć następującej składni:
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
Ten konkretny przykład szuka daty 15.04.2023 w zakresie A2:A10 .
Jeśli data zostanie znaleziona, pojawi się okno komunikatu informujące użytkownika, który wiersz zakresu zawiera tę datę.
Jeśli data nie zostanie znaleziona, pojawi się komunikat „Nie znaleziono dopasowań”, dzięki czemu użytkownik będzie wiedział, że dana data nie istnieje w podanym zakresie.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Uwaga : Funkcja CDate konwertuje ciąg tekstowy na datę w VBA.
Przykład: użycie funkcji DOPASUJ z datami w VBA
Załóżmy, że w Excelu mamy następującą listę dat z zakresu A2:A10 :
Możemy utworzyć następujące makro, aby znaleźć numer wiersza zawierającego datę 15.04.2023 w zakresie 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
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Okno komunikatu informuje nas, że data 15.04.2023 została znaleziona w 7. linii zakresu A2:A10 .
Zauważ, że gdybyśmy zamiast tego szukali daty 25.04.2023 , otrzymalibyśmy następujący wynik:
Okno komunikatu informuje nas, że data 25.04.2023 nie została znaleziona w zakresie.
Uwaga : Pełną dokumentację metody Match w VBA znajdziesz tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: jak korzystać z XLOOKUP
VBA: Jak korzystać z dopasowywania indeksów
VBA: Jak używać DOPASOWANIA INDEKSU z wieloma kryteriami