Ich habe fangen gerade erlebt das gleiche Problem. Nach einigem Versuch und Irrtum entdeckte ich, dass , wenn die Auswahl rechts von meinem Filterbereich war UND die Anzahl der angezeigten Datensätze Null war, würde ShowAllData fehlschlagen.
Ein wenig mehr Kontext ist wahrscheinlich relevant. Ich habe eine Reihe von Blättern mit jeweils einem Filter. Ich möchte einige Standardfilter auf allen Blättern einzurichten, deshalb verwende ich einige VBA wie diese
Sheets("Server").Select
col = Range("1:1").Find("In Selected SLA").Column
ActiveSheet.ListObjects("Srv").Range.AutoFilter Field:=col, Criteria1:="TRUE"
Dieser Code wird der Filter auf die Spalte mit Überschrift „In Ausgewählte SLA“ einzustellen, und lassen Sie alle anderen Filter unverändert . Dies hat den unglücklichen Nebeneffekt, dass ich einen Filter erstellen kann, der null Datensätze anzeigt. Dies ist nur mit der Benutzeroberfläche möglich.
Um dies zu vermeiden, möchte ich alle Filter zurücksetzen, bevor ich die obige Filterung anwende. Mein Reset-Code sah so aus:
Beachten Sie, wie ich die ausgewählte Zelle nicht verschoben habe. Wenn die Auswahl rechts wäre, würden Filter nicht entfernt, so dass der Filtercode einen Nullzeilenfilter erstellt. Beim zweiten Mal, wenn der Code ausgeführt wird (bei einem Nullzeilenfilter), schlägt ShowAllData fehl.
Die Abhilfe ist einfach: Bewegen Sie die Auswahl in den Filterspalten vor ShowAllData Aufruf
Application.Goto (Sheets("Server").Range("A1"))
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Dies war auf Excel Version 14.0.7128.5000 (32-Bit) = Office 2010
Welchen Fehler bekommen Sie in der Zeile, es stürzt ab? –
Ein Laufzeitfehler: ShowAllData Methode der Arbeitsblatt-Klasse ist fehlgeschlagen –