2016-09-14 59 views
-1

程序應該接收一列(D34:D99)中重複單元格值(D34)多少次。但程序顯示爲零。在一列中重複單元格值多少次。使用查找方法

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 

末次

+0

我不清楚爲什麼在[COUNTIF函數(https://support.office.com/ en-US/article/COUNTIF-function-E0DE10C6-F885-4E71-ABB4-1F464816DF34)是不夠的,但您應該擴展[Range.Find方法]的參數(https://msdn.microsoft.com/en- us/library/office/ff839746.aspx)超出默認值le英尺由以前的用法。 – Jeeped

+0

我找到另一個解決方案。感謝您的幫助 – maxim465

回答

1

我就不清楚爲什麼COUNTIF function是不夠的,但你應該擴大Range.Find method超出了先前使用留下的默認的參數和使用.Find(What:=Team)不帶引號。

如果您正在尋找在Range("D33:D99")內的Range("D34")的單元格值,它將始終至少找到一次。

+0

發佈我的帖子,而你已經發布了你的。希望你不介意。而在OP方面,「repetita juvant」永遠是真實的! – user3598756

+0

無後顧之憂;協議持有重量。 – Jeeped

1

變化

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

Set r = .Find(What:=Team) 

也跟着Jeeped建議

相關問題