我有以下代码可以正常工作,但是我似乎无法弄清楚如何使其与On Error
一起工作
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
ErrMsg:
MsgBox "error"
Exit Sub
如果有错误,这可以正常工作,但是如果正确,那么它仍然会显示“错误” MsgBox,并退出“ Sub”。
答案 0 :(得分:2)
Application.Evaluate method不会引发您可以用On Error …
捕获的异常,而是会返回一个可以用IsError function测试的错误值。
If IsError(row_num2) Then
MsgBox "error in evaluate"
End If
正如Mathieu在他的评论中建议的那样,您可以选择使用
Application.WorksheetFunction.Match
会引发On Error …
或Application.Match
捕获的异常,该异常返回IsError
的错误值。