This is my code for finding a value in excel.if Paint Shop
is not found then it will get the method range of object _global failed
. I\'m new to excel m
Try this:
Dim Result As Variant
If Not VBA.IsError(Application.Match(...)) Then
Result = Application.Match(...)
End If
This tries the match and if there is an error on the function it will not assign a result.
Alternatively:
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
Note: be sure to use Application.Match
rather than Application.WorksheetFunction.Match
for this to work.
WorksheetFunction.Match Method (Excel)
To handle this scenario, try this:
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
You incorporate Error Handling
routine OERN
to check if the worksheet function fails.
If it does, myvalue
will not be initialized and you can check if it is empty or not.
Also take note that i declared myvalue
as Variant
data type.
Reason is for IsEmpty
to evaluate it correctly.