Zum Hauptinhalt springen

Wie bereinige ich den Autopassfilter in Excel VBA

Der Autofilter ist ein leistungsfähiges Werkzeug in Microsoft Excel, mit dem Sie große Datenmengen verarbeiten und analysieren können. Es ermöglicht Benutzern, die benötigten Informationen schnell und einfach in einer Tabelle zu finden. Aber was kann ich tun, wenn der automatische Anpassungsfilter nicht mehr funktioniert oder zu falschen Ergebnissen führt?

In diesem Artikel erfahren Sie, wie Sie den automatischen Anpassungsfilter in Excel VBA löschen. Wir zeigen Ihnen einige Methoden zum Reinigen des Filters, die Sie in Ihren Makros oder Prozeduren verwenden können. Darüber hinaus werden wir einige Empfehlungen geben, um die Benutzerfreundlichkeit des automatischen Anpassungsfilters zu verbessern.

Die erste Methode zum Bereinigen des automatischen Anpassungsfilters besteht darin, die AutoFilterMode-Eigenschaft des Worksheet-Objekts zu verwenden. Mit dieser Eigenschaft können Sie bestimmen, ob der Filter auf dem Arbeitsblatt aktiviert ist. Wenn der Filter aktiviert ist, können wir die ShowAllData-Methode verwenden, um alle Daten in der Tabelle anzuzeigen. Dies kann wie folgt erfolgen:

Sub ClearFilter()


If ActiveSheet.AutoFilterMode Then


ActiveSheet.ShowAllData


End If


End Sub

Dieser Code überprüft, ob der automatische Anpassungsfilter im aktiven Arbeitsblatt aktiviert ist. Wenn der Filter aktiviert ist, zeigt die ShowAllData-Methode alle Daten in der Tabelle an und bereinigt den Filter. Dies ist eine einfache und effektive Möglichkeit, den Auto-Pass-Filter in Excel VBA zu bereinigen.

Die zweite Methode, die wir untersuchen werden, verwendet die Clear-Methode für jedes Feld des automatischen Anpassungsfilters. Wir können alle Filterfelder durchlaufen und mit dieser Methode bereinigen. Beispielsweise löscht dieser Code den Filter für jede Spalte im Bereich A1:C10:

Sub ClearFilter()


Dim rng As Range


Set rng = Range("A1:C10")


Dim field As Range


For Each field In rng.Rows(1).SpecialCells(xlCellTypeVisible)


field.AutoFilter Field:=field.Column, Criteria1:=" Sheet1")' Проверяем, есть ли у нас автофильтр в таблицеIf ws.AutoFilterMode Then' Очищаем фильтрws.AutoFilterMode = FalseEnd IfEnd Sub

In diesem Beispiel deklarieren wir zuerst das Arbeitsblattobjekt "Sheet1" und weisen ihm einen Wert für die ws-Variable zu. Wir überprüfen dann, ob der Autofilter in der Tabelle auf dem Arbeitsblatt aktiviert ist. Wenn der Autofilter aktiviert ist, löschen wir den Filter, indem wir die AutoFilterMode-Eigenschaft auf False setzen.

Nachdem dieser Code ausgeführt wurde, wird der Filter gelöscht und alle Daten werden in der Tabelle angezeigt.

Das Löschen eines Filters in Excel VBA ist sehr nützlich, wenn Sie alle Daten in einer Tabelle ohne Filterbedingungen anzeigen möchten. Sie können diesen Code in Ihren VBA-Makros verwenden, um den Filter automatisch zu bereinigen.

Entfernen von Filtern

Um alle Filter zu entfernen, müssen Sie den folgenden Code verwenden:

Dieser Code deaktiviert den automatischen Anpassungsmodus für das aktive Arbeitsblatt und entfernt alle Filter. Nachdem dieser Code ausgeführt wurde, wird die gesamte automatische Anpassung gelöscht, und alle Zeilen werden erneut im Arbeitsblatt angezeigt.

Wenn Sie nur den Filter für ein bestimmtes Feld entfernen möchten, können Sie den folgenden Code verwenden:

In diesem Code wird das Feld, nach dem der Filter entfernt werden soll, mit einem Parameter angegeben Field. Im obigen Beispiel wird der Wert auf 1 gesetzt, was dem ersten Feld entspricht. Nachdem dieser Code ausgeführt wurde, wird der Filter für das erste Feld entfernt, und alle nach diesem Feld gefilterten Zeilen werden erneut angezeigt.

Am Ende ist die Verwendung der Methode AutoFilter ermöglicht das Entfernen von Filtern aus der automatischen Anpassung in Excel VBA. Dies ist eine sehr nützliche Funktion, die Zeit sparen und die Verwaltung von Daten in Excel-Tabellen vereinfachen kann.