程序应该接收列中重复单元格值(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
答案 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建议