Excel 2013 VBA VBA Ștergeți toate filtrele macro

Se pare că macrourile mai vechi nu funcționează. Am setat securitatea corespunzătoare pentru a rula macro VBA, dar atunci când am încercat câteva metode pentru a șterge TOATE filtrele dintr-o foaie de calcul, primesc o eroare de compilare.

Iată ce am încercat:


Sub AutoFilter_Remover()
'Această macro elimină orice filtrare pentru a afișa toate datele, dar nu elimină săgețile de filtrare
ActiveSheet.ShowAllData
End Sub

Am butoane pe foi pentru a șterge toate filtrele pentru ușurința utilizatorilor, deoarece foile au o mulțime de coloane care au filtre pe ele.

Încearcă asta:

If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData
Comentarii (3)
Soluția

Dacă foaia are deja un filtru pe ea, atunci:

Sub Macro1()
    Cells.AutoFilter
End Sub

îl va elimina.

Comentarii (1)

Încercați ceva de genul acesta:

Sub ClearDataFilters()
'Clears filters on the activesheet. Will not clear filters if the sheet is protected.
On Error GoTo Protection
If ActiveWorkbook.ActiveSheet.FilterMode Or _
   ActiveWorkbook.ActiveSheet.AutoFilterMode Then _
   ActiveWorkbook.ActiveSheet.ShowAllData

Exit Sub
Protection:
If Err.Number = 1004 And Err.Description = _ 
    "ShowAllData method of Worksheet class failed" Then
    MsgBox "Unable to Clear Filters. This could be due to protection on the sheet.", _
    vbInformation
End If

End Sub

.FilterMode returnează true dacă foaia de lucru este în modul de filtrare. (Consultați acest lucru pentru mai multe informații). A se vedea aceasta pentru mai multe informații despre .AutoFilter.
Și, în cele din urmă, this va oferi mai multe informații despre metoda .ShowAllData.

Comentarii (0)