Как считать строки без заголовка После фильтрации таблицы с использованием кода VBA? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть 2 листа в файле Excel с двумя таблицами:

Лист 1: Имеет таблицу данных для фильтрации

Лист 2: Наличие сводной страницы, которая показывает количество строк для определенного фильтра.У него есть панель управления фильтрами

. Я создал код на VB и назначил его кнопке, чтобы можно было нажимать на нее, и мой код для фильтрации таблицы:

Sheets (ItemsSheet) .Select

ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=2, Criteria1:="=Menu"

ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=3, Criteria1:="=Submenu"

ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=Phase_Column, Criteria1:= _
    Array(Phase, "="), Operator:=xlFilterValues

Когда я выполняю этот код, он перенаправляет меня на лист 1, и фильтр успешно применяется.

Вопрос:

  1. Как рассчитать количество строк, расположенных в [Sheet1]?
  2. Как отобразить количество строк в ячейке, расположенной в [Sheet2] после фильтра?
  3. Каквыполнить приведенный выше код без перенаправления на [Sheet1]?

Изображение для вашей справки:

enter image description here

1 Ответ

0 голосов
/ 12 ноября 2018

После того, как я сделал много поисков по этому вопросу.Я нашел решение для этого:

Добавьте приведенный ниже код после выполнения кода фильтра:

Код:

Dim mycount As Long

mycount = Intersect(Columns(1), ActiveSheet.UsedRange).SpecialCells(xlCellTypeVisible).Count - 1

MsgBox mycount

Результат:

Вы получите все строки, которые видны после применения фильтра.

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...