确定给定范围内“查找”的匹配数

时间:2013-08-23 17:51:39

标签: excel vba find match

我有一个选择特定范围的宏,然后会在其上找到数字“0”。  我想知道在我选择的范围内出现多少次“0”,这样我就可以创建一个等于该数字的变量。如何设置一个等于find返回查询匹配次数的变量?

ActiveCell.Select
Selection.Offset(0, 1).Select
item = ActiveCell.Value
Sheets("Lights").Select
Rows(3).Select
Selection.Find(What:=item, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Select
     q = ActiveCell.row()
     z = ActiveCell.Column()
    Range(Cells(q, z), Cells(72, z)).Select
    Selection.Find(What:="0", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate

因此,如果范围内有7个0实例,那么我想设置变量m = 7

1 个答案:

答案 0 :(得分:2)

m = WorksheetFunction.CountIf(Selection, 0)

或部分匹配:

m = WorksheetFunction.CountIf(Selection, "*0*")