vba已过滤行的行号

时间:2016-04-21 19:04:46

标签: excel vba excel-vba

我有这个代码来捕获过滤表中的行号,做一些事情,然后转到下一个可见行。我在第一行工作得很好。

Sub test()

Dim rn As Long
Dim cell As Range
Dim rng As Range


    Set rng = Sheets("FabricatedParts").Range("A:A").SpecialCells(xlCellTypeVisible)
        rn = Sheets("FabricatedParts").UsedRange.Offset(1, 0).SpecialCells(xlCellTypeVisible).Row
         For Each cell In rng
            With ActiveSheet
                .Range("B14").Value = [Parts].Cells(rn, [Parts[Part.]].Column)
            End With
            'rn = Next Visible Row #???.row
         Next cell

End Sub

当我将offset(1,0)更改为offset(2,0)时,它仍然返回第一个可见行的行号(在本例中为10)。我正在寻找一个VBA语句,它将返回下一个可见行的行号,并将该数字传递给rn变量。对于过滤范围,我正在测试下一行号是11,接下来的165,接下来的166等等。感谢您的时间。

1 个答案:

答案 0 :(得分:1)

使用单元格循环的行号。

Sub test()

Dim rn As Long
Dim cell As Range
Dim rng As Range


    Set rng = Sheets("FabricatedParts").Range("A:A").SpecialCells(xlCellTypeVisible)
         For Each cell In rng
            rn = cell.row
            With ActiveSheet
                .Range("B14").Value = [Parts].Cells(rn, [Parts[Part.]].Column)
            End With
         Next cell

End Sub