Wie wende ich Filter mit VBA auf Daten an und lösche sie?

Inhaltsverzeichnis

Excel VBA Filter

Das VBA-Filter- Tool wird verwendet, um die gewünschten spezifischen Daten zu sortieren oder abzurufen. Die Autofilter-Funktion wird als Arbeitsblattfunktion verwendet. Diese Funktion enthält jedoch andere Argumente, die optional sind, und das einzige obligatorische Argument ist der Ausdruck, der beispielsweise den Bereich abdeckt Arbeitsblätter ("Sheet1"). Bereich ("A1"). Autofilter wendet den Filter auf die erste Spalte an.

Das Filtern in VBA funktioniert genauso wie im Arbeitsblatt. Der einzige Unterschied besteht darin, dass wir die Routineaufgabe des Filterns der Daten durch Codierung automatisieren können.

AutoFilter ist eine Funktion, die viele Syntaxwerte enthält. Nachfolgend sind die Parameter aufgeführt, die an der AutoFilter-Funktion beteiligt sind.

  • Der Bereich ist das erste, was wir bereitstellen müssen, um die Option „AutoFilter“ zu verwenden. Dies ist einfach, für welchen Zellbereich wir den Filter anwenden müssen, z. B. Bereich („A1: D50“).
  • Das Feld ist das erste Argument in der Funktion. Sobald der Zellenbereich über das VBA RANGE-Objekt ausgewählt wurde, müssen wir angeben, für welche Spalte des Bereichs wir den Filter anwenden möchten.
  • Kriterium 1 ist nichts anderes als im ausgewählten Feld, welchen Wert Sie herausfiltern möchten.
  • Der Operator wird für den Fall verwendet, dass Sie das Argument Kriterium 2 verwenden möchten . In dieser Option können wir die folgenden Optionen verwenden.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • In der sichtbaren Dropdown-Liste wird angegeben, ob ein Filtersymbol in der Spalte "Filter angewendet" angezeigt werden soll oder nicht. Wenn Sie anzeigen möchten, können Sie das Argument als TRUE oder FALSE angeben.

Beispiele zum Filtern von Daten mit VBA

Beispiel 1 - Filter auf die Daten anwenden oder entfernen

Wenn Sie die Filteroption auf die Daten anwenden möchten, können Sie diese Option deaktivieren und aktivieren. Schauen Sie sich zum Beispiel das folgende Datenbild an.

Schritt 1: Datenbereich angeben

Um zuerst die Filteroption zu aktivieren, müssen wir unseren Datenbereich angeben. Im obigen Bild sind unsere Daten von A1 bis G31 verteilt. Geben Sie diesen Bereich daher mithilfe eines RANGE-Objekts an.

Code:

Sub Filter_Example () Range ("A1: G31") End Sub
Schritt 2: Rufen Sie dann die AutoFilter-Funktion auf

Greifen Sie jetzt auf die AutoFilter-Funktion für diesen Bereich zu.

Code:

Sub Filter_Example () Range ("A1: G31"). AutoFilter End Sub
Schritt 3: Führen Sie den Code aus, um den Filter zu aktivieren

Das ist alles. Führen Sie diesen Code aus, um den automatischen Filter zu aktivieren.

Dieser Code funktioniert als Umschalter. Wenn der Filter nicht angewendet wird, wird er angewendet. Wenn bereits angewendet, wird es entfernt.

Beispiel 2 - Filterspezifische Werte

Jetzt werden wir sehen, wie die Parameter der AutoFilter-Option verwendet werden. Nehmen Sie die gleichen Daten wie oben. Zum Beispiel müssen wir jetzt alle „männlichen“ Geschlechtsnamen herausfiltern.

Schritt 1: Wählen Sie Range und Open Autofilter Function
Schritt 2: Wählen Sie dann Feld

Im ersten Argument der Funktion, dh Feld, müssen wir die Spaltenreferenz erwähnen, die wir herausfiltern möchten. In diesem Beispiel müssen nur "männliche" Kandidaten gefiltert werden. Dies ist die Spalte "C", sodass die Spaltennummer 3 ist.

Schritt 3: Erwähnen Sie nun die Kriterien

Für dieses bereitgestellte Feld müssen wir nun die Kriterien 1 angeben, dh welchen Wert wir im genannten Feld filtern müssen . Wir müssen "Männlich" aus dieser Spalte herausfiltern.

Code:

Sub Filter_Example () Range ("A1: G31"). AutoFilter Field: = 3, Criteria1: = "Male" End Sub
Schritt 4: Führen Sie den Code aus

Ok, das ist alles. Dieser Code filtert jetzt nur "männliche" Kandidaten.

Beispiel 3 - Verwendung des OPERATOR-Arguments

When you want to filter out more than one value from the column, we need to use the “Operator” argument. For example, from the column “Major,” we need to filter only “Math & Politics,” then we need to use this argument.

Step 1: Select Range and Autofilter Field

First, supply the Range of cells and fields.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, End Sub
Step 2: Enter Criteria 1 as Math

For the mentioned filed, we need to supply Criteria 1 as “Math.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", End Sub
Step 3: Use Operator xl

Since we need to filter one more value from the same column or field, use the operator symbol as “xlOr.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr End Sub
Step 4: Enter Criteria 2 as Politics

And for Criteria 2 argument mention the value as “Politics.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr, Criteria2:="Politics" End Sub

This will filter out both “Math” & “Politics” from column “Major.”

Example #4 - Filter Numbers with Operator Symbols

For example, if you want to filter numbers with, then we can filter a specific number as well as numbers above, below, or between specific values and range of values.

For example, from the age column, if you want to filter persons aged more than 30, then we can write the code like below.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">30" End Sub

This will filter all the values that are more than 30.

Now, if you want to filter values between 21 and 31, then we can use the below code.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">21", Operator:=xlAnd, Criteria2:="<31" End Sub

This will filter persons aged between 21 and 30.

Example #5 - Apply Filter for More Than One Column

If you want to filter values from more than one column criteria, then we need to use a slightly different technique.

If you want to filter “Student Status” as “Graduate” and “Country” as “US,” then first, we need to supply the RANGE of cells under the “WITH” statement.

Code:

Sub Filter_Example() With Range("A1:G31") End With End Sub

Geben Sie nun in der WITH-Anweisung die ersten zu filternden Kriterien an.

Code:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" End With End Sub

Machen Sie jetzt in der nächsten Zeile dasselbe für "Land", indem Sie "Feld" als 6 und Kriterien als "USA" ändern.

Code:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter-Feld: = 4, Criteria1: = "Graduate" .AutoFilter-Feld: = 6, Criteria1: = "US" End With End Sub

Jetzt wird "Absolvent" nur für das Land "USA" gefiltert.

Dinge, an die man sich erinnern sollte

  • Das erste, was zuerst nur für den genannten Zellbereichsfilter angewendet wird, wird angewendet.
  • Das Feld ist nichts in welcher Spalte Sie die Daten filtern möchten.
  • Wenn Sie Werte aus mehr als einer Spalte filtern, verwenden Sie With.

Interessante Beiträge...