У меня есть документ Excel с таблицей под названием "Сотрудники".

Я хочу создать кнопки, которые будут переключать некоторые фильтры (вкл / выкл).

Пример:

Default table:
Id | Name  | Last name | Status
---+-------+-----------+---------
 1 | Alice | Alpha     | Active
 2 | Bob   | Beta      | Active
 3 | Alice | Charlie   | Inactive
 4 | Carol | Delta     | Active
 5 | Lewis | Echo      | Inactive

[Toggle active/all]:
Id | Name  | Last name | Status
---+-------+-----------+---------
 1 | Alice | Alpha     | Active
 2 | Bob   | Beta      | Active
 4 | Carol | Delta     | Active

[Toggle Alice/all]:
Id | Name  | Last name | Status
---+-------+-----------+---------
 1 | Alice | Alpha     | Active
 3 | Alice | Charlie   | Inactive

Эти 2 кнопки будут создавать фильтр только для соответствующего столбца или удалять его, если он уже создан. Таким образом, я могу использовать обе кнопки для фильтрации активных сотрудников Алисы.

[Toggle active/all] + [Toggle Alice/all]:
Id | Name  | Last name | Status
---+-------+-----------+---------
 1 | Alice | Alpha     | Active

На данный момент я могу создать фильтр таким образом:

' Create a filter on 'Alice'
ActiveWorkbook.Sheets("Employees").ListObjects("Employees").Range.AutoFilter Field:=2, Criteria1:="Alice"
' Create a filter on 'active'
ActiveWorkbook.Sheets("Employees").ListObjects("Employees").Range.AutoFilter Field:=4, Criteria1:="Active"

Но я не знаю, как проверить, активирован ли этот фильтр.

1 ответ1

-1

Вам нужно создать кнопку переключения на листе.

Позвольте мне сказать, как.

Создайте командную кнопку, назовите ее, например, Fltrbutton, измените ее заголовок как Алису. Затем в редакторе VB создайте этот код.

Sub Fltrbutton_click()

ActiveSheet.AutofilterMode = False

If Fltrbutton.Caption = "Alice" then

      ActiveSheet.Range("$A$2:$D$20").AutoFilter Field:=2, Criteria1:="Alice"

    Fltrbutton.Caption = "Active"

Endif

If Fltrbutton.Caption = "Active" then

     ActiveSheet.Range("$A$30:$D$50").AutoFilter Field:=4, Criteria1:="Active"

   Fltrbutton.Caption = "Alice"

Endif

End Sub

Я действительно надеюсь, что этот пример кода поможет вам правильно использовать Код для обоих критериев.

Примечание: измените диапазон данных и другие, как вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .