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
结果打印在即时窗口中。