2017-03-20 6 views
1

Ich habe etwas Code, der (durch) alle meine Arbeitsblätter durchlaufen sollte und einen Autofilter hinzufügen, aber aus irgendeinem Grund werden sie nicht angezeigt. Wenn ich Ereignisse einschalte, kann ich sehen, dass es schnell hinzugefügt und dann fast sofort entfernt wird. Ich gehe davon aus, dass dies an etwas liegt, das früher in meinem Code geschrieben wurde, aber ich habe zu viel Code, um zu bewerten, was das Problem verursacht ... Gibt es etwas, das ich hinzufügen kann, um zu garantieren, dass die Filter hinzugefügt werden? Code:Excel VBA - Schleife fügt keine Autofilter zu meinen Arbeitsblättern hinzu

Dim wsfixer As Worksheet 
    For Each wsfixer In ActiveWorkbook.Worksheets 
With ActiveSheet 
     .AutoFilterMode = False 
     .Range("A:S").AutoFilter 
End With 
On Error Resume Next 
    Next 
+0

Für den Anfang würde ich alle Fehlerbehandlung deaktivieren - vielleicht gibt es einen Fehler irgendwo verursacht Ihre anderen Probleme, – flaZer

Antwort

2

Wenn Sie auf jedem Arbeitsblatt den Code bearbeiten möchten,

With ActiveSheet 

zu

With wsfixer 

im With Block der Code Durch die Verwendung von With ActiveSheet ändern wird "shortcutted" zu sein das aktive Blatt zu verwenden (z. B. .AutoFilterMode wird als ActiveSheet.AutoFilterMode behandelt). Sie führen also denselben Code immer wieder auf das eine aktive Blatt aus.

+0

Ich habe buchstäblich nur laut gelacht (ich bin so ein Idiot!). Ich war noch nie so gut mit Loops ... Danke für die schnelle Antwort! – dwirony

Verwandte Themen