我正在尝试用动态长度的过滤列填充一个范围。此时,经过筛选,我的列为179行(总行数>25000(。当我打印range.rows.count时,它正确地显示它有179个值。但是当我使用for循环打印每个值时,它包含隐藏的值。我不知道为什么会发生这种事。
这是我正在使用的代码:
LR = Range("O" & Rows.Count).End(xlUp).Row
Set rng = Range("O2:O" & LR).SpecialCells(xlCellTypeVisible)
以下是我用来查看它包含的内容的代码:
For x = 1 To rng.Count
Debug.Print rng.Cells(x, 1).Value
Next x
Debug.Print x
将Cells
(或Range
(属性应用于某个范围并不会将您限制为实际位于该范围内的单元格,它只是提供了一个锚点。你最好使用这样的For Each
循环:
For Each cell in rng.Cells
Debug.Print cell.Value
Next cell