In VBA können Sie erstellen Automatischer Filter um einen Zellbereich oder eine Excel-Tabelle zu filtern. In diesem Tutorial erfahren Sie, wie Sie Automatischer Filter für eine oder mehrere Spalten und für mehrere Bedingungen.
Wenn Sie erfahren möchten, wie Sie einen erweiterten Filter in VBA verwenden, klicken Sie hier: Erweiterter VBA-Filter
AutoFilter in VBA erstellen
Zuerst werden Sie sehen, wie Sie einfach erstellen Automatischer Filter in einem Bereich, sodass ein Benutzer die Daten filtern kann. Die Daten, die wir in den Beispielen verwenden werden, sind in Bild 1:
Bild 1. Daten für AutoFilter-Beispiele
Hier ist der Code zum Erstellen Automatischer Filter:
1 | Sheet1.Range("A1:E1").AutoFilter |
Um zu ermöglichen Automatischer Filter, müssen wir den Header des Bereichs angeben, in unserem Fall A1:E1, und verwenden die Automatischer Filter Methode des Objekts Bereich. Aus diesem Grund sind in unserem Datenbereich Filter aktiviert:
Bild 2. AutoFilter für die Daten aktiviert
AutoFilter mit Feld- und Kriterienparametern
VBA ermöglicht es Ihnen auch, ein bestimmtes Feld mit bestimmten Werten automatisch zu filtern.
Dazu müssen Sie Parameter verwenden Gebiet und Kriterien1 der Methode Automatischer Filter. In diesem Beispiel möchten wir die dritte Spalte filtern (Produkt) zum Produkt A nur. Hier ist der Code:
12 | Sheet1.Range("A1:E1").AutoFilter Field:=3, _Kriterien1:="Produkt A" |
In dem Gebiet Parameter können Sie die Nummer der Spalte im Bereich einstellen (nicht in Excel), während in Kriterien1 Sie können den Wert eingeben, den Sie filtern möchten. Nach der Ausführung des Codes sieht unsere Tabelle wie folgt aus:
Bild 3. AutoFilter mit Feld und Kriterien
Wie Sie sehen, sind nur Zeilen mit Produkt A in der dritten Spalte werden im Datenbereich angezeigt.
AutoFilter mit Feld- und mehreren Kriterienwerten
Wenn Sie ein Feld mit mehreren Werten filtern möchten, müssen Sie den Parameter Operator des Automatischer Filter Methode. Um mehrere Werte zu filtern, müssen Sie einstellen Operator zu xlFilterWerte und auch alle Werte von Kriterien in einem Array. In diesem Beispiel filtern wir die Produkt Spalte für Produkt A und Produkt B. Hier ist das Codebeispiel:
123 | Sheet1.Range("A1:E1").AutoFilter Field:=3, _Kriterien1:=Array("Produkt A", "Produkt B"), _Operator:=xlFilterValues |
Wenn wir den Code ausführen, erhalten wir nur Zeilen mit Produkt A und Produkt B, wie Sie in Bild 4 sehen können:
Bild 4. AutoFilter mit mehreren Kriterienwerten
Datenbereich mit mehreren Kriterien automatisch filtern
Wenn Sie ein Feld mit mehreren Kriterien filtern möchten, müssen Sie Kriterien1 und Kriterien2 Parameter, aber auch die Operator xlAnd.
Im nächsten Beispiel filtern wir die erste Spalte (Datum) für Daten im Dezember 2022. Daher haben wir zwei Kriterien: ein Datum größer als 01.12.18 und kleiner als 31.12.18. Dies ist der Code:
1234 | Sheet1.Range("A1:E1").AutoFilter Field:=1, _Kriterien1:=">=12/01/2018", _Operator:=xlAnd, _Kriterien2:="<=12/31/2018" |
Wenn wir den Code ausführen, sehen Sie, dass im Datenbereich nur Daten im Dezember angezeigt werden:
Bild 5. AutoFilter mit mehreren Kriterien für das Feld
Die Operatorparameterwerte der AutoFilter-Methode
In der nächsten Tabelle. Sie können alle möglichen Werte der sehen Operator Parameter der AutoFilter-Methode und deren Beschreibungen:
Operator | Beschreibung |
xlAnd | Enthält mehrere Kriterien - Kriterien1 und Kriterien 2 |
xlOr | Enthält eines der mehreren Kriterien - Kriterium1 oder Kriterium 2 |
xlTop10Items | Filtert eine bestimmte Anzahl von Werten mit dem höchsten Rang (Anzahl angegeben in Kriterien1) |
xlBottom10Items | Filtert eine bestimmte Anzahl von Werten mit dem niedrigsten Rang (Anzahl angegeben in Kriterien1) |
xlTop10Prozent | Filtert einen bestimmten Prozentsatz der am höchsten bewerteten Werte (% angegeben in Kriterien1) |
xlBottom10Percent | Filtert einen bestimmten Prozentsatz der Werte mit dem niedrigsten Rang (% angegeben in Kriterien1) |
xlFilterWerte | Enthält mehrere Kriterienwerte mit Array |
xlFilterCellColor | Filtert Zellen nach Farben |
xlFilterFontColor | Filtert Zellen nach Schriftfarben |
xlFILterIcon | Filtersymbole |
xlFilterDynamic | Dynamische Werte filtern |