Chcete-li vymazat všechny filtry ve VBA, musíte provést následující kroky:
- vložte data do listu
- klikněte na data a pomocí kláves Ctrl + T vytvořte tabulku
vymažte všechny filtry v aktivní tabulce
Klikněte uvnitř tabulky a otevřete Editor VBA (Alt + F11).
Zadejte a spusťte následující kód.
Sub RemoveFiltersFromTable() ActiveSheet.ShowAllDataEnd Sub
pokud je aktivní buňka mimo tabulku, vrátí chybu.
vymažte všechny filtry v tabulce
v našem příkladu jsou dvě tabulky: Table1 a Table2. Každý z nich má použité filtry.
Chcete-li zkontrolovat název tabulky, přejděte na návrh >> vlastnosti >> název tabulky.
můžete použít předchozí kód VBA, kliknout na každou z tabulek a spustit kód. Tentokrát však vytvoříme kód, který vymaže všechny filtry ze všech tabulek v listu.
Chcete-li vymazat filtr uvnitř každé tabulky v tabulce, musíte nejprve projít všechny. Použijte následující kód.
Sub LoopThroughTablesInsideWorksheet()Dim myTable As ListObject For Each myTable In ActiveSheet.ListObjects MsgBox myTable Next myTableEnd Sub
vrátí dvě okna zpráv s názvy tabulky.
místo zprávy vytvoříme kód, který vymaže filtry z každé tabulky. Chcete-li to provést, stačí změnit MsgBox myTable na myTable.filtr.ShowAllData.
Sub LoopThroughTablesInsideWorksheet()Dim myTable As ListObject For Each myTable In ActiveSheet.ListObjects myTable.AutoFilter.ShowAllData Next myTableEnd Sub
nový řádek zkontroluje každou tabulku a zobrazí všechna data, jinými slovy odstraní všechny filtry.
vymazat všechny filtry v sešitu
Chcete – li to provést pro všechny tabulky uvnitř sešitu, musíte přidat další smyčku, která projde všemi tabulkami v každém listu a vymaže filtry.
Sub LoopThroughTablesInsideWorkbook()Dim myTable As ListObjectDim mySheet As WorksheetFor Each mySheet In Worksheets For Each myTable In mySheet.ListObjects myTable.AutoFilter.ShowAllData Next myTableNext mySheetEnd Sub
nadšenec tabulky a Pythonu.