vendredi 15 juillet 2016

MATCH() function in VBA

Good day! I am trying to run the code below but get an Error 1004: Unable to get the Match property of the WorksheetFunction class. Going a little bit ahead, as I understand if there is no match, MATCH() function returns #N/A, so there is no point to assign this to the INDEX variable (moreover, I think it might also cause an error). Can you advise how to modify the code to account for this possibility?

Sub Debugging()

Workbooks("Problem.xls").Worksheets(1).Activate

Cash_Rows = 5
Share_Rows = 6

If Cash_Rows <= Share_Rows Then

Range("A1:A" & Cash_Rows).Select
With Selection.Interior
    .ThemeColor = xlThemeColorAccent6
    .TintAndShade = 0.399975585192419 
End With

Count_Cash = Application.WorksheetFunction.CountIf(Range("A:A"), "L*")

For Each cell In Range("A1:A" & Cash_Rows)
    If CStr(cell.Value) Like "L*" Then
    Range("A" & cell.Row & ":" & "D" & cell.Row).Interior.Color = 65535
    Dim Index As Integer
    Index = Application.WorksheetFunction.Match(CStr(cell.Value), Range("F2:" & "F" & Share_Rows), 0)
    Range("F" & Index & ":" & "I" & Index).Interior.Color = 65535
    End If
Next

If Count_Cash = 0 Then
    MsgBox "You do not have any matching ID+Amount between Cash and Shares booking. It's OK!"
Else
    MsgBox "You have " & Count_Cash & " matching transactions. Check them!"
End If 

Else 

MsgBox "Do not worry. Be happy!" 

End If 

End Sub

Thank you in advance!

Aucun commentaire:

Enregistrer un commentaire