Excel 当评估匹配不匹配时显示错误';我找不到它';s标准

Excel 当评估匹配不匹配时显示错误';我找不到它';s标准,excel,vba,Excel,Vba,我有以下代码可以正常工作,但我似乎不知道如何在出现错误时使用 row_num2 = Evaluate("MATCH(1,('" & ws1.Name & "'!A:A=""" & variable1 & """)*('" & ws1.Name & "'!B:B=""" & variable2 & """)*('" & ws1.Name & "'!G:G=""" & variable3 & """),0

我有以下代码可以正常工作,但我似乎不知道如何在出现错误时使用

row_num2 = Evaluate("MATCH(1,('" & ws1.Name & "'!A:A=""" & variable1 & """)*('" & ws1.Name & "'!B:B=""" & variable2 & """)*('" & ws1.Name & "'!G:G=""" & variable3 & """),0)")
我已经厌倦了用塑料包装它

On Error GoTo ErrMsg
如果出现错误,这可以正常工作,但如果它是正确的,那么它仍然会显示“error”MsgBox并退出Sub

不会抛出异常,您可以在出错时捕获它…相反,它返回一个可以使用测试的错误值

正如马修在他的评论中所建议的,你也可以使用
Application.WorksheetFunction.Match
它抛出一个异常,可以通过
On Error…
应用程序捕获。Match
返回
iError
的错误值


看。

就是这样,似乎已经解决了。谢谢你!考虑使用<代码>应用程序.WorkSueTeal.匹配< <代码> >
ErrMsg:
    MsgBox "error"
Exit Sub
If IsError(row_num2) Then
    MsgBox "error in evaluate"
End If