Macro di Excel 2013 VBA Clear All Filters

Sembra che le macro più vecchie non funzionino. Ho impostato la sicurezza adeguata per eseguire le macro VBA, ma quando ho provato alcuni metodi per cancellare TUTTI i filtri su un foglio di lavoro, ottengo un errore di compilazione.

Ecco cosa ho provato:

PRE


Sub AutoFilter_Remove()
'Questa macro rimuove qualsiasi filtraggio per visualizzare tutti i dati ma non rimuove le frecce del filtro
ActiveSheet.ShowAllData
Fine Sub

Ho dei pulsanti sui fogli per cancellare tutti i filtri per facilitare l'uso da parte degli utenti, dato che i fogli hanno molte colonne che hanno dei filtri su di esse.

Prova questo:

If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData
Commentari (3)
Soluzione

Se il foglio ha già un filtro, allora:

Sub Macro1()
    Cells.AutoFilter
End Sub

lo rimuoverà.

Commentari (1)

Provate qualcosa del genere:

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 restituisce true se il foglio di lavoro è in modalità filtro. (Vedi questo per maggiori informazioni). Vedi questo per maggiori informazioni su .AutoFilter.
E infine, questo fornirà maggiori informazioni sul metodo .ShowAllData.

Commentari (0)