2017-07-27 9 views
1

オートフィルタリングされた範囲で、行のみを反復処理する必要があります(行インデックスを取得する予定です)? RNG内のすべての細胞におけるExcel VBAでオートフィルタ作業表の行のみを反復処理する方法はありますか?

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

この繰り返し処理:

私はこのBLKを試してみました。しかし、私はこれを必要としません。私は、その範囲内の各行の任意の1つのセル(2列目または1列の任意のセル)を反復処理する必要があります。代わり

For Each ele In rng 

使用

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

範囲の列1(最初の列)を介して、この意志ループの

+0

フィルターレンジを拡大しますか? – Moosli

答えて

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 
+0

ちょうどチャームのように機能しました!ありがとうMoosilとMrig! \ m / – Ravikumar

1

。範囲が"C1:G10"の場合、rng.Columns(1).CellsColumn Cをループし、rng.Columns(2).CellsColumn Dをループします。

1を必要な列番号に変更してください。

関連する問題