Count如果返回0值

我想查找“旧值”标题下具有“橙色”值的列中的单元格数量。 但是我得到的值是0,虽然我在单元格中有值。 请帮助下面的代码。

Private Sub CommandButton1_Click() Dim x As Workbook Dim Wks As Worksheet Dim aCell As Range Dim col As Long Dim Var1 Dim i As Integer Dim a Set x = Workbooks.Open("C:\*********\file.xls") Set Wks = x.Worksheets("file") Set aCell = Wks.Range("A1:X1000").Find(What:="Old Value", LookIn:=xlValues, LookAt:=xlWhole, _ MatchCase:=False, SearchFormat:=False) col = aCell.Column For i = 1 To 1000 Var1 = Application.WorksheetFunction.CountIf(Wks.Cells(i, col), "*orange*") Next i MsgBox Var1 End Sub 

For循环在这里是不需要的。 代替

 For i = 1 To 1000 Var1 = Application.WorksheetFunction.CountIf(Wks.Cells(i, col), "*orange*") Next i 

尝试

 Var1 = Application.WorksheetFunction.CountIf(Wks.Columns(col), "*orange*") 

总的来说,这是一个很好的例子,可以做的很less。 问题出在循环中,而不是在代码的其余部分。

您不会增加var1的值。 因此,每次都重写。 这是如何增加值:

 Public Sub Test() Dim Var1 as Long Dim i As Long For i = 1 To 1000 Var1 = Var1 + WorksheetFunction.CountIf(ActiveSheet.Cells(i, 4), "*orange*") Next i Debug.Print Var1 End Sub 

结果打印在即时窗口中。