如何遍历Excel VBA中的自动过滤工作表中的行?

只需要遍历行(意图是获得行索引)在自动过滤范围?

我试过这个blk:

For Each ele In rng RowInd = ele.Rows.Address RowNum = Split(RowInd, "$")(2) Next ele 

这在rng中的所有单元格中迭代。 但我不需要这个。 我需要在该范围内的每一行中迭代任何一个单元格(比如第2列或第1列中的任何单元格)。

我会用tempRng做这个。

首先,你必须像Mirg所说的那样做这个事情,并给你想循环的列提供tempRng。

而你应该这样做的循环。

 For Each ele In tempRng.SpecialCells(xlCellTypeVisible) 

所以你会ony循环过滤范围。

 Dim Rng As Range Dim tempRng As Range Set Rng = ActiveSheet.Range("A2:D11") Set tempRng = Rng.Columns(1) For Each ele In tempRng.SpecialCells(xlCellTypeVisible) RowInd = ele.Rows.Address RowNum = Split(RowInd, "$")(2) Next ele 

代替

 For Each ele In rng 

使用

 For Each ele In rng.Columns(1).Cells 

这将遍历范围的第1列 (第一列)。 如果您的范围是"C1:G10"rng.Columns(1).Cells将循环遍历Column Crng.Columns(2).Cells将遍历Column D ,依此类推。

1更改为所需的列号。