Vba excel宏中对象\u全局的方法范围失败
这是我在excel中查找值的代码。如果未找到Vba excel宏中对象\u全局的方法范围失败,vba,Vba,这是我在excel中查找值的代码。如果未找到Paint Shop,则它将获取对象的方法范围\u global failed。我不熟悉excel宏,有谁能帮我解决这个问题吗 If WorksheetFunction.Match("Paint Shop", Range(col & x, col & y), 0) Then paint = WorksheetFunction.Match("Paint Shop", Range(col & x, col & y),
Paint Shop
,则它将获取对象的方法范围\u global failed
。我不熟悉excel宏,有谁能帮我解决这个问题吗
If WorksheetFunction.Match("Paint Shop", Range(col & x, col & y), 0) Then
paint = WorksheetFunction.Match("Paint Shop", Range(col & x, col & y), 0)
Else
paint = 2000
End If
试试这个:
Dim Result As Variant
If Not VBA.IsError(Application.Match(...)) Then
Result = Application.Match(...)
End If
这将尝试匹配,如果函数出现错误,则不会指定结果
或者:
Dim rng As Range: Set rng = Sheet1.Range("A2:A10")
Dim Result As Variant
Result = Application.Match("A", rng, 0)
If Not VBA.IsError(Result) Then
Debug.Print (Result)
End If
注意:一定要使用Application.Match
而不是Application.WorksheetFunction.Match
,才能使其正常工作
要处理此情况,请尝试以下方法:
Dim myvalue
On Error Resume Next
myvalue = WorksheetFunction.Match("Paint Shop", Range(col & x, col & y), 0)
On Error Goto 0
If Not IsEmpty(myvalue) Then
paint = myvalue
Else
paint = 2000
End If
您可以合并错误处理
例程OERN
,以检查工作表功能是否失败。
如果是,则不会初始化
myvalue
,您可以检查它是否为空。还要注意,我声明了
myvalue
为Variant
数据类型。原因是
i无法正确计算它。它返回运行时错误1004“对象的方法范围\u全局失败”。如果这回答了您的问题,请单击答案左侧的复选标记。在VBA中处理工作表函数
对象时,应格外小心。无论何时使用此选项,并且有可能返回错误值,请始终添加错误处理程序。请看我的帖子。