Вы можете использовать метод WorksheetFunction.Subtotal для подсчета видимых строк и содержащих в них данные (обратите внимание, что видимые пробелы не будут учитываться):
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