I want to get the row number of autofiltered lines.
I used this code
With xlsWkSheet
With .Range("A1").CurrentRegion
.AutoFilter Field:=4, Criteria1:="88684240"
.AutoFilter Field:=19, Criteria1:="88684239"
Set xlsRangeAutoFilter = .SpecialCells(xlCellTypeVisible)
End With
End With
But I have no idea how to use xlsRangeAutoFilter to get row number of autofiltered (Visible) lines
Thanks a lot for your help
You can use the WorksheetFunction.Subtotal method to count the rows that are visible and have data in it (note visible blanks will not be counted):
NumberOfRows = Application.WorksheetFunction.Subtotal(3, xlsWkSheet.Range("A1:A" & xlsWkSheet.Range("A1").CurrentRegion.Rows.Count))
or alternatively a more reliable method:
xlsWkSheet.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1
Edit according to comment:
To output all filtered row numbers you must loop through the areas.
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