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
此特定示例在A2:A10范围内查找日期04/15/2023 。
如果找到该日期,则会出现一个消息框,告诉用户该范围中的哪一行包含该日期。
如果未找到该日期,则会出现一个消息框,显示“未找到匹配项”,以便用户知道该日期不存在于该范围内。
以下示例展示了如何在实践中使用此语法。
注意: CDate函数将文本字符串转换为 VBA 中的日期。
示例:在 VBA 中对日期使用 MATCH 函数
假设 Excel 中有以下A2:A10范围内的日期列表:
我们可以创建以下宏来查找A2:A10范围内包含日期04/15/2023的行号:
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
当我们运行这个宏时,我们会收到以下输出:
消息框告诉我们在A2:A10范围的第 7行中找到了日期04/15/2023 。
请注意,如果我们搜索日期04/25/2023 ,我们将收到以下结果:
消息框告诉我们在范围内找不到日期04/25/2023 。
注意:您可以在此处找到 VBA 中Match方法的完整文档。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: