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 中执行其他常见任务:

VBA:如何使用 XLOOKUP
VBA:如何使用索引匹配
VBA:如何使用具有多个条件的索引匹配

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注