使用VBA获取Excel中自动填充行的行数

时间:2018-11-14 10:57:54

标签: excel vba excel-vba row-number autofilter

我想获取自动过滤的行的行数。

我使用了此代码

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来获取自动过滤(可见)行的行数

非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以使用WorksheetFunction.Subtotal method对可见的行进行计数,并在其中包含数据(注意可见的空白将不被计数):

spring:
  application:
    name: test
  cloud:
    service-registry:
      auto-registration:
        enabled: false

或更可靠的方法:

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