如何仅在Excel VBA中的自动筛选工作表中迭代行?

时间:2017-07-27 06:49:12

标签: excel vba excel-vba

需要在自动筛选范围内仅迭代行(意图是获取行索引)吗?

我试过这个blk:

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

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

2 个答案:

答案 0 :(得分:1)

而不是

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更改为所需的列号。

答案 1 :(得分:0)

我会用tempRng来做这件事。

首先你需要像Mirg那样做,并给tempRng你想要循环的列。

你应该这样做的循环。

For Each ele In tempRng.SpecialCells(xlCellTypeVisible)

所以你将循环过滤范围。

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