Excel VBA: Can't get a match, error “Unable to get the Match property of the WorksheetFunction class”

前端 未结 2 1019
庸人自扰
庸人自扰 2020-11-29 10:50

For the love of all that is good, I cannot seem to get this to work. I keep getting the error mentioned above.

I have this table, and I\'m trying to find out whethe

相关标签:
2条回答
  • 2020-11-29 10:50

    Just as another option, this can also be done by putting the formula below in cell C2, and dragging it down to C23.

    =IF(COUNTIF($A$2:$A$23,B2)>=1,"YES","NO")
    
    0 讨论(0)
  • 2020-11-29 10:52

    Use the Application.Match function which allows for better ability to trap errors. When using the WorksheetFunction.Match, when a match is not found, it returns an error, which is what you're experiencing.

    If Not IsError(Application.Match(Cells(e, 1).Value, myrange, 0)) Then
        'Do stuff when the match is found
        Cells(e, 3).Value = "Yes"
    Else:
        Cells(e, 3).Value = "No"
    End If
    

    You could also potentially use the CountIf function:

    If Application.WorksheetFunction.CountIf(myRange, Cells(e,1).Value) > 0 Then
        Cells(e,3).Value = "Yes"
    Else:
        Cells(e,3).Value = "No"
    End If
    

    Neither of these approaches requires you to use the m1 variable, you can assign this variable within the True part of the If/Then statement, if you need to identify where the match is found.

    0 讨论(0)
提交回复
热议问题