一列中重复的单元格值的次数。使用Find方法

时间:2016-09-14 05:33:59

标签: excel vba excel-vba find

程序应该接收列中重复单元格值(D34)的次数(D34:D99)。但程序显示为零。

Sub распознать()
Dim r As Range
Dim firstAddress As String
Dim iLoop As Long
Dim book1 As Workbook
Dim Team As String 
Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 4\БАЗА ДАННЫХ\болванка\сезон для проги\Англия\1-ое место\3.xlsx")
 Team = book1.Worksheets("3").Range("D34")
With book1.Worksheets("3").Range("D33:D99")

    Set r = .Find(What:="Team")
    If Not r Is Nothing Then
        firstAddress = r.Address
        Do
            iLoop = iLoop + 1
            Set r = .FindNext(r)
        Loop While Not r Is Nothing And r.Address <> firstAddress And iLoop < 20
    End If
End With
book1.Worksheets("3").Range("D100").Value = iLoop
book1.Save

End Sub

2 个答案:

答案 0 :(得分:1)

我不清楚为什么COUNTIF function不够,但您应该将Range.Find method的参数扩展到上一次使用所留下的默认值之外,并使用.Find(What:=Team)而不使用引号。

如果您要在Range("D34")内查找Range("D33:D99")的单元格值,则至少会找到一次。

答案 1 :(得分:1)

变化

Set r = .Find(What:="Team")

Set r = .Find(What:=Team)

并遵循Jeeped建议