Vba CountIf返回0值
我想在“旧值”标题下找到值为“橙色”的列中的单元格数。 但是我得到的值是0,尽管我在单元格中有值。请使用以下代码进行帮助Vba CountIf返回0值,vba,excel,Vba,Excel,我想在“旧值”标题下找到值为“橙色”的列中的单元格数。 但是我得到的值是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 =
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
一般来说,这是一个很好的问题示例,可以使问题变得非常简单。问题在循环中,而不是代码的其余部分 不增加
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
结果将打印在即时窗口中。
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*")