- Dezactivați AutoFilter în foaia de lucru activă în VBA
- Activați AutoFilter în foaia de lucru activă în VBA
- Dezactivați AutoFilter în toate foile de lucru din VBA.
- Dezactivați filtrul automat în toate foile de lucru din VBA.
- Ștergeți toate filtrele din foaia de lucru activă în VBA
- Ștergeți toate filtrele din toate foile de lucru din VBA
- Ștergeți toate filtrele dintr-un tabel în VBA
Acest tutorial va arăta cum să dezactivați / ștergeți filtrele automate în VBA.
Filtrele automate pot fi activate sau dezactivate folosind codul VBA.
Dezactivați AutoFilter în foaia de lucru activă în VBA
Următorul exemplu de cod dezactivează filtrul automat în foaia activă, verificând mai întâi că nu este deja dezactivat.
12345 | Public Sub KillFilter ()Dacă ActiveSheet.AutoFilterMode ApoiActiveSheet.AutoFilterMode = FalsEnd IfSfârșitul Sub |
Activați AutoFilter în foaia de lucru activă în VBA
Următorul exemplu de cod activează Filtrul automat în foaia activă, verificând mai întâi că nu este deja activat.
12345 | Public Sub StartFilter ()Dacă nu este ActiveSheet.AutoFilterMode, atunciActiveSheet.Range ("A1"). AutoFilterEnd IfSfârșitul Sub |
Dezactivați AutoFilter în toate foile de lucru din VBA.
Următorul exemplu de cod parcurge fiecare foaie din întregul registru de lucru și dezactivează AutoFilter în fiecare foaie de lucru, verificând mai întâi dacă filtrul din registrul de lucru curent nu este deja activat.
12345678 | Sub public StopAllFilters ()Dim ws Ca foaie de lucruPentru fiecare ws din ActiveWorkbook.WorksheetsDacă ws.AutoFilterMode = Adevărat atunciws.AutoFilterMode = FalseEnd IfUrmătorul wsSfârșitul Sub |
Dezactivați filtrul automat în toate foile de lucru din VBA.
În mod similar, următorul exemplu de cod parcurge întregul registru de lucru și activează AutoFilter în fiecare foaie, verificând mai întâi dacă filtrul din registrul de lucru curent nu este deja activat.
12345678 | Public Sub StartAllFilters ()Dim ws Ca foaie de lucruPentru fiecare ws din ActiveWorkbook.WorksheetsDacă nu ws.AutoFilterMode Apoiws.Range („A1”). AutoFilterEnd IfUrmătorul wsSfârșitul Sub |
Ștergeți toate filtrele din foaia de lucru activă în VBA
Următorul exemplu de cod lasă filtrul automat activat în foaia activă, dar șterge orice filtru aplicat datelor.
12345 | Public Sub ClearFilter ()Dacă ActiveSheet.FilterMode = True AtunciActiveSheet.ShowAllDataEnd IfSfârșitul Sub |
Ștergeți toate filtrele din toate foile de lucru din VBA
În mod similar, următorul exemplu de cod parcurge întregul registru de lucru și lasă AutoFilterul activat în fiecare foaie dacă este deja activat, dar șterge orice filtru aplicat datelor.
12345678 | Public Sub ClearAllFilters ()Dim ws Ca foaie de lucruPentru fiecare ws din ActiveWorkbook.WorksheetsDacă ws.FilterMode = Adevărat atunciws.ShowAllDataEnd IfUrmătorul wsSfârșitul Sub |
Ștergeți toate filtrele dintr-un tabel în VBA
În cazul în care foaia noastră de lucru conține un obiect de tabel, putem ajusta codul pentru a șterge orice filtru aplicat acelui filtru, lăsând în același timp filtrul automat pornit.
123456789 | Sub ClearFilterFromTable ()Dim ws Ca foaie de lucruDim sTable As StringDim loTable As ListObjectsTable = "Table1"Setați ws = ActiveSheetSetați loTable = ws.ListObjects (sTable)loTable.AutoFilter.ShowAllDataSfârșitul Sub |
În cazul în care obiectul tabelului este legat de un tabel pivot, atunci tabelul pivot se va reîmprospăta în consecință.