我正在尝试使用AutoFilter并使用来自不同工作表的值来获取条件,但是它只获取循环中最后一条记录的计数值。
For iLoop = 1 To 10
Selection.AutoFilter Field:=8, Criteria1:=Worksheets("Sheet3").Cells(iLoop, 1).Value
Dim LR As Long
LR = Range("A" & Rows.Count).End(xlUp).Row
Range("A2:AD" & LR).SpecialCells(xlCellTypeVisible).Select
ActiveSheet.Range("$A$1:$AD$146").AutoFilter Field:=5, Criteria1:=RGB(255, _
0, 0), Operator:=xlFilterCellColor
cCnt = ActiveSheet.AutoFilter.Range.Columns(5).SpecialCells(xlCellTypeVisible) _
.Cells.Count - 1
ActiveSheet.ShowAllData
Worksheets("Sheet3").Range("B2:B11").Value = cCnt
Next iLoop
答案 0 :(得分:0)
看起来你的问题是:
Worksheets("Sheet3").Range("B2:B11").Value = cCnt
一遍又一遍地将cCnt
中存储的(唯一)值分配给相同的范围。所以它在循环的每次迭代中得到(可能)不同的值,但是你只看到最后一个。
也许您打算做的事情是:
Worksheets("Sheet3").Range("B" & iloop + 1).Value = cCnt
因此,在循环的第一次迭代中(当iLoop=1
时),它会将cCnt
中的值分配给单元格B2
。在iLoop=2
时,它会将cCnt
分配给B3
等等......