Vba: come utilizzare la funzione match con le date
È possibile utilizzare la seguente sintassi per utilizzare la funzione MATCH per trovare una data in 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
Questo esempio particolare cerca la data 04/15/2023 nell’intervallo A2:A10 .
Se viene trovata la data, viene visualizzata una finestra di messaggio che indica all’utente quale riga nell’intervallo contiene la data.
Se la data non viene trovata, viene visualizzata una finestra di messaggio che dice “Nessuna corrispondenza trovata” in modo che l’utente sappia che la data non esiste nell’intervallo.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Nota : la funzione CDate converte una stringa di testo in una data in VBA.
Esempio: utilizzo della funzione MATCH con date in VBA
Supponiamo di avere il seguente elenco di date nell’intervallo A2: A10 in Excel:
Possiamo creare la seguente macro per trovare il numero di riga che contiene la data 15/04/2023 nell’intervallo 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
Quando eseguiamo questa macro, riceviamo il seguente output:
La finestra di messaggio ci informa che la data 04/15/2023 è stata trovata nella settima riga dell’intervallo A2:A10 .
Tieni presente che se invece cercassimo la data 25/04/2023 , riceveremmo il seguente risultato:
La finestra di messaggio ci informa che la data 25/04/2023 non è stata trovata nell’intervallo.
Nota : qui potete trovare la documentazione completa del metodo Match in VBA.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come utilizzare XLOOKUP
VBA: come utilizzare la corrispondenza degli indici
VBA: come utilizzare INDEX MATCH con più criteri