- Vypněte automatický filtr v aktivním listu ve VBA
- Zapněte automatický filtr v aktivním listu ve VBA
- Vypněte automatický filtr ve všech listech ve VBA.
- Vypněte automatický filtr ve všech listech ve VBA.
- Vymažte všechny filtry v aktivním listu ve VBA
- Vymazat všechny filtry ve všech listech ve VBA
- Vymažte všechny filtry v tabulce ve VBA
Tento tutoriál předvede, jak vypnout /vymazat automatické filtry ve VBA.
Automatické filtry lze zapnout nebo vypnout pomocí kódu VBA.
Vypněte automatický filtr v aktivním listu ve VBA
Následující příklad kódu vypne automatický filtr v aktivním listu a nejprve zkontroluje, zda již není vypnutý.
12345 | Public Sub KillFilter ()Pokud ActiveSheet.AutoFilterMode ThenActiveSheet.AutoFilterMode = FalseKonec IfEnd Sub |
Zapněte automatický filtr v aktivním listu ve VBA
Následující příklad kódu zapne automatický filtr v aktivním listu a nejprve zkontroluje, zda již není zapnutý.
12345 | Public Sub StartFilter ()Pokud není ActiveSheet.AutoFilterMode ThenActiveSheet.Range („A1“). Automatický filtrKonec IfEnd Sub |
Vypněte automatický filtr ve všech listech ve VBA.
Následující příklad kódu prochází každý list v celém sešitu a vypne automatický filtr v každém listu, přičemž nejprve kontroluje, zda filtr v aktuálním sešitu již není zapnutý.
12345678 | Public Sub StopAllFilters ()Dim ws As WorksheetZa každý ws v ActiveWorkbook.WorksheetsPokud ws.AutoFilterMode = True Thenws.AutoFilterMode = FalseKonec IfDalší wsEnd Sub |
Vypněte automatický filtr ve všech listech ve VBA.
Podobně následující příklad kódu prochází celý sešit a zapíná AutoFilter na každém listu, přičemž nejprve kontroluje, zda filtr v aktuálním sešitu již není zapnutý.
12345678 | Veřejné Sub StartAllFilters ()Dim ws As WorksheetZa každý ws v ActiveWorkbook.WorksheetsPokud ne ws.AutoFilterMode Thenws.Range ("A1"). AutoFilterKonec IfDalší wsEnd Sub |
Vymažte všechny filtry v aktivním listu ve VBA
Následující příklad kódu ponechává automatický filtr zapnutý v aktivním listu, ale vymaže všechny filtry, které jsou použity na data.
12345 | Public Sub ClearFilter ()Pokud ActiveSheet.FilterMode = True ThenActiveSheet.ShowAllDataKonec IfEnd Sub |
Vymazat všechny filtry ve všech listech ve VBA
Podobně následující příklad kódu prochází celým sešitem a ponechává automatický filtr zapnutý v každém listu, pokud je již zapnutý, ale vymaže všechny filtry, které jsou použity na data.
12345678 | Public Sub ClearAllFilters ()Dim ws As WorksheetZa každý ws v ActiveWorkbook.WorksheetsPokud ws.FilterMode = True Thenws.ShowAllDataKonec IfDalší wsEnd Sub |
Vymažte všechny filtry v tabulce ve VBA
Pokud náš list obsahuje objekt tabulky, můžeme kód upravit tak, aby pouze vymazal jakýkoli filtr, který je na tento filtr aplikován, a ponechal zapnutý automatický filtr.
123456789 | Dílčí ClearFilterFromTable ()Dim ws As WorksheetDim sTable as StringDim loTable jako ListObjectsTable = "Tabulka1"Nastavit ws = ActiveSheetNastavit loTable = ws.ListObjects (sTable)loTable.AutoFilter.ShowAllDataEnd Sub |
Pokud je objekt tabulky propojen s kontingenční tabulkou, kontingenční tabulka by se odpovídajícím způsobem aktualizovala.