ho appena sperimentato lo stesso problema. Dopo alcune prove ed errori ho scoperto che se la selezione era a destra della mia area di filtro E il numero di record mostrati era zero, ShowAllData avrebbe avuto esito negativo.
Un po 'più di contesto è probabilmente pertinente. Ho un numero di fogli, ognuno con un filtro. Vorrei impostare alcuni filtri standard su tutti i fogli, quindi io uso un po 'di VBA come questo
Sheets("Server").Select
col = Range("1:1").Find("In Selected SLA").Column
ActiveSheet.ListObjects("Srv").Range.AutoFilter Field:=col, Criteria1:="TRUE"
Questo codice sarà regolare il filtro sulla colonna con intestazione "In SLA Selected", e lasciare tutti gli altri filtri invariato . Questo ha lo sfortunato effetto collaterale che posso creare un filtro che mostra zero record. Questo non è possibile usando l'UI da solo.
Per evitare questa situazione, desidero ripristinare tutti i filtri prima di applicare il filtro sopra. Il mio codice di reset sembrava così
Sheets("Server").Select
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Nota come non ho spostato la cella selezionata. Se la selezione era a destra, non rimuoveva i filtri, consentendo così al codice del filtro di creare un filtro a riga zero. La seconda volta che si esegue il codice (su un filtro a riga zero) ShowAllData avrà esito negativo.
La soluzione è semplice: spostare la selezione all'interno delle colonne del filtro prima di chiamare ShowAllData
Application.Goto (Sheets("Server").Range("A1"))
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Questo era in Excel versione 14.0.7128.5000 (32-bit) = Office 2010
fonte
2014-10-25 10:28:40
Quale errore si verifica sulla linea in cui si arresta? –
Un errore di runtime: Metodo ShowAllData di classe del foglio di lavoro non è riuscito –