Фильтр VBA на основе отмеченных полей - PullRequest
0 голосов
/ 26 сентября 2018

Мне было интересно, сможет ли кто-нибудь мне помочь.Я создал пользовательскую форму, которая меняет фильтры на листе Excel.У меня есть столбец, который содержит уровень приоритета от 1-3.Когда форма запускается, у меня есть возможность распечатать отчет в PDF, но я хочу разрешить пользователю применять / отфильтровывать результаты по приоритету, прежде чем они будут печатать в PDF.У меня есть три флажка, которые я хочу использовать в коде фильтра (см. Изображение ниже).Вот где я застрял, я не уверен, как вводить код в часть Criteria, поэтому, когда пользователь проверяет приоритет блока 1, он отфильтровывает этот раздел до его печати.Я собирался назначить числовое значение, которое связано с приоритетом, если значение истинно.Затем используйте это число в качестве значения «критерий» при применении фильтра.Есть лучший способ сделать это?

ActiveSheet.Range("$W$7:$AG$4501").AutoFilter Field:=6, Criteria:= "What Do i Put Here?" 

enter image description here

enter image description here

1 Ответ

0 голосов
/ 26 сентября 2018

Вам просто нужно проверить имена флажков и выровнять их в соответствии с правильными критериями.Обратите внимание, что ваши критерии - это просто значение, которое вы хотите отфильтровать, здесь 1, 2, or 3.

Для вашего теста вы также можете просто сказать If CheckBox1 Then, который будет возвращать либо If True Then, где True соответствует установленному флажку.

Я написал это явно нижекод так понятно.Я предполагаю, что это, вероятно, нужно будет вызывать при нажатии какой-либо кнопки отправки.


If CheckBox1 = True Then
    ActiveSheet.Range("$W$7:$AG$4501").AutoFilter Field:=6, Criteria:= 1
ElseIf CheckBox2 = True Then
    ActiveSheet.Range("$W$7:$AG$4501").AutoFilter Field:=6, Criteria:= 2
ElseIf CheckBox3 = True Then
    ActiveSheet.Range("$W$7:$AG$4501").AutoFilter Field:=6, Criteria:= 3
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...