- Wyłącz Autofiltr w aktywnym arkuszu w VBA
- Włącz Autofiltr w aktywnym arkuszu w VBA
- Wyłącz Autofiltr we wszystkich arkuszach roboczych w VBA.
- Wyłącz Autofiltr we wszystkich arkuszach roboczych w VBA.
- Wyczyść wszystkie filtry w aktywnym arkuszu w VBA
- Wyczyść wszystkie filtry we wszystkich arkuszach roboczych w VBA
- Wyczyść wszystkie filtry w tabeli w VBA
Ten samouczek pokaże, jak wyłączyć / wyczyścić Autofiltry w VBA.
Autofiltry można włączać i wyłączać za pomocą kodu VBA.
Wyłącz Autofiltr w aktywnym arkuszu w VBA
Poniższy przykład kodu wyłącza Autofiltrowanie w aktywnym arkuszu, sprawdzając najpierw, czy nie jest już wyłączony.
12345 | Publiczny filtr podrzędny KillFilter()Jeśli ActiveSheet.AutoFilterMode toActiveSheet.AutoFilterMode = FałszZakończ, jeśliNapis końcowy |
Włącz Autofiltr w aktywnym arkuszu w VBA
Poniższy przykład kodu włącza Autofiltrowanie w aktywnym arkuszu, sprawdzając najpierw, czy nie jest jeszcze włączony.
12345 | Publiczny podrzędny filtr startowy()Jeśli nie ActiveSheet.AutoFilterMode toActiveSheet.Range("A1").AutoFilterZakończ, jeśliNapis końcowy |
Wyłącz Autofiltr we wszystkich arkuszach roboczych w VBA.
Poniższy przykład kodu przechodzi przez każdy arkusz w całym skoroszycie i wyłącza Autofiltrowanie w każdym arkuszu, sprawdzając najpierw, czy filtr w bieżącym skoroszycie nie jest już włączony.
12345678 | Public Sub StopAllFilters()Dim ws As WorksheetDla każdego ws In ActiveWorkbook.WorksheetsJeśli ws.AutoFilterMode = True Wtedyws.AutoFilterMode = FałszZakończ, jeśliNastępnyNapis końcowy |
Wyłącz Autofiltr we wszystkich arkuszach roboczych w VBA.
Podobnie poniższy przykład kodu przechodzi przez cały skoroszyt i włącza Autofiltrowanie w każdym arkuszu, sprawdzając najpierw, czy filtr w bieżącym skoroszycie nie jest już włączony.
12345678 | Public Sub StartAllFilters()Dim ws As WorksheetDla każdego ws In ActiveWorkbook.WorksheetsJeśli nie ws.AutoFilterMode tows.Range("A1").AutoFilterZakończ, jeśliNastępnyNapis końcowy |
Wyczyść wszystkie filtry w aktywnym arkuszu w VBA
Poniższy przykład kodu pozostawia włączony AutoFilter w aktywnym arkuszu, ale czyści wszystkie filtry zastosowane do danych.
12345 | Publiczny Sub ClearFilter()Jeśli ActiveSheet.FilterMode = True, wtedyActiveSheet.ShowAllDataZakończ, jeśliNapis końcowy |
Wyczyść wszystkie filtry we wszystkich arkuszach roboczych w VBA
Podobnie poniższy przykład kodu przechodzi przez cały skoroszyt i pozostawia włączony Autofiltr w każdym arkuszu, jeśli jest już włączony, ale czyści wszystkie filtry zastosowane do danych.
12345678 | Public Sub ClearAllFilters()Dim ws As WorksheetDla każdego ws In ActiveWorkbook.WorksheetsJeśli ws.FilterMode = True Wtedyws. Pokaż wszystkie daneZakończ, jeśliNastępnyNapis końcowy |
Wyczyść wszystkie filtry w tabeli w VBA
Jeśli nasz arkusz zawiera obiekt tabeli, możemy dostosować kod, aby wyczyścić dowolny filtr zastosowany do tego filtra, pozostawiając włączony Autofiltr.
123456789 | Sub ClearFilterFromTable()Dim ws As WorksheetStable Dim Stable As StringDim lotTable jako ListObjectsTabela = "Tabela1"Ustaw ws = Aktywny arkuszUstaw loTable = ws.ListObjects(sTable)loTable.AutoFilter.ShowAllDataNapis końcowy |
Jeśli obiekt tabeli zostanie połączony z tabelą przestawną, tabela przestawna zostanie odpowiednio odświeżona.