Vba: como usar a função match com datas
Você pode usar a seguinte sintaxe para usar a função MATCH para encontrar uma data no 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
Este exemplo específico procura a data 15/04/2023 no intervalo A2:A10 .
Se a data for encontrada, uma caixa de mensagem aparecerá informando ao usuário qual linha do intervalo contém a data.
Se a data não for encontrada, aparecerá uma caixa de mensagem dizendo “Nenhuma correspondência encontrada” para que o usuário saiba que a data não existe no intervalo.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Nota : A função CDate converte uma string de texto em uma data no VBA.
Exemplo: usando a função MATCH com datas em VBA
Suponha que temos a seguinte lista de datas no intervalo A2:A10 no Excel:
Podemos criar a seguinte macro para encontrar o número da linha que contém a data 15/04/2023 no intervalo 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 executamos esta macro, recebemos a seguinte saída:
A caixa de mensagem informa que a data 15/04/2023 foi encontrada na 7ª linha do intervalo A2:A10 .
Observe que se pesquisássemos a data 25/04/2023 , receberíamos o seguinte resultado:
A caixa de mensagem informa que a data 25/04/2023 não foi encontrada no intervalo.
Nota : Você pode encontrar a documentação completa do método Match em VBA aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: como usar XLOOKUP
VBA: Como usar correspondência de índice
VBA: Como usar INDEX MATCH com vários critérios