使用VBA在Excel中获取自动换行的行数



我想得到自动过滤的行数。

我用了这个代码

With xlsWkSheet      
    With .Range("A1").CurrentRegion
        .AutoFilter Field:=4, Criteria1:="88684240"
        .AutoFilter Field:=19, Criteria1:="88684239"            
        Set xlsRangeAutoFilter = .SpecialCells(xlCellTypeVisible)
    End With
End With

但我不知道如何使用xlsRangeAutoFilter来获得自动过滤(可见(行数

非常感谢您的帮助

您可以使用WorksheetFunction.Tsubtotal方法来计算可见的行数和其中有数据的行数(注意,可见的空格将不计算在内(:

NumberOfRows = Application.WorksheetFunction.Subtotal(3, xlsWkSheet.Range("A1:A" & xlsWkSheet.Range("A1").CurrentRegion.Rows.Count))

或者更可靠的方法:

xlsWkSheet.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1

根据注释编辑:

若要输出所有已筛选的行号,必须在区域中循环。

    With .Range("A1").CurrentRegion
        Dim Area As Range
        For Each Area In .Columns(1).SpecialCells(xlCellTypeVisible).Cells.Rows.Areas
            Dim AreaRow As Range
            For Each AreaRow In Area.Rows
                Debug.Print AreaRow.Row 'output each row number in intermediate window
            Next AreaRow
        Next Area
    End With

相关内容

  • 没有找到相关文章

最新更新