2016-09-14 6 views
-1

列(D34:D99)内のセルの値(D34)が何回繰り返されるかをプログラムが受け取るはずです。しかし、プログラムはゼロを表示します。列内のセルの値が何回繰り返されているか。 Findメソッドを使用する

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

に従ってください(COUNTIF-function-E0DE10C6-F885-4E71-ABB4-1F464816DF34)は十分ではありませんが、[Range.Findメソッド] us/library/office/ff839746.aspx)デフォルト値を超えています前の使用方法でft。 – Jeeped

+0

私は別の解決策を見つけました。あなたのお手元に投稿している間、助けてくれて – maxim465

答えて

1

私はCOUNTIF functionが十分でない理由については不明だが、あなたは、以前の使用によって残さデフォルトを超えてRange.Find methodのパラメータを拡張し、引用符なしで.Find(What:=Team)を使用する必要があります。

Range("D34")のセル値がRange("D33:D99")の範囲内にある場合は、常に少なくとも1回は検出されます。

Set r = .Find(What:=Team) 

+0

私の投稿。あなたが気にしないと願っています。 OPの側では_ "repetita juvant" _は常に真実です! – user3598756

+0

心配はありません。契約は重量を保持する。 – Jeeped

1

変更

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

とも私は、なぜ[COUNTIF関数](https://support.office.com/には不明だJeeped提案

関連する問題