Чтобы объяснить, почему добавьте оператор debug.print.
With ActiveSheet.AutoFilter.Range
Set rFiltered = .Resize(.Rows.Count - 1).Offset(1).Columns(2).SpecialCells(xlCellTypeVisible)
End With
Debug.Print rFiltered.Address
firstrow = rFiltered.Cells(1, 1).End(xlToLeft).Row
Debug.Print firstrow
Debug.Print rFiltered.Cells(firstrow).Address
Применение фильтра для Eleanor B и одностадийный с F8
1-й отпечаток показывает $ B $ 4: $ B $ 5 для отфильтрованный адрес
2-й отпечаток показывает 4 для $ B $ 4 строка
3-й отпечаток показывает $ B $ 7? Почему, потому что это 4-я строка диапазона фильтра "$ B $ 4: $ B $ 5"
$ B $ 7 пуста, поэтому последняя строка является нижней.