VBA AutoFilter

Excel VBA AutoFilter

AutoFilter in VBA wird als Ausdruck verwendet und die Syntax dafür lautet wie folgt: Ausdruck. Autofilter (Feld, Kriterium 1, Operator, Kriterium 2, Dropdown) Alle Argumente sind optional. Der Filter ist hilfreich beim Filtern der bestimmten Daten aus den riesigen Daten.

Wenn Sie ein regelmäßiger Benutzer sind, sind Excel-Filter für Sie keine seltsame Sache. Einige der im Arbeitsblatt verwendeten Tools sind auch in VBA integriert, und die Option für den automatischen Filter ist eines der wichtigsten in VBA verfügbaren Tools. Wie wir alle wissen, ist der Excel-Filter auf der Registerkarte "Daten" verfügbar.

Mit dieser Filteroption können wir mit den Daten herumspielen. Wenn Sie mit einer minimalen Datenmenge arbeiten und der Meinung sind, dass die VBA-Autofilteroption nicht wirklich erforderlich ist, können Sie die Arbeitsblattfilteroption weiterhin verwenden.

Wenn Sie mit einer großen Datenmenge arbeiten, können Sie eine Autofilter-Option verwenden, um den Prozessablauf zu vereinfachen.

Syntax der AutoFilter-Funktion

AutoFilter in Excel VBA kann mit einem Bereichsobjekt verwendet werden. Wie unsere anderen Funktionen hat auch dies eine eigene Syntax.

  • Bereich: Der Bereich liegt einfach in dem Bereich, in dem Sie den Filter anwenden möchten.
  • Feld: Feld bedeutet, aus welcher Spalte des von Ihnen ausgewählten Bereichs Sie die Daten herausfiltern möchten. Eine Spalte wird von links nach rechts gezählt.

Wenn Ihr Bereich beispielsweise zwischen A1 und D100 liegt und Sie einen Filter für die Spalte D anwenden möchten, lautet Ihre Feldnummer 4, da D im ausgewählten Bereich die vierte Spalte ist.

Kriterium 1: Im Feld haben Sie ausgewählt, was Sie filtern möchten.

  • Operator: Wenn Sie mehr als ein Kriterium zum Filtern der Daten anwenden möchten, müssen wir Operatorsymbole verwenden. Einige der Bedienercodes sind wie folgt.

xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues.

Kriterium 2: Was ist das zweite, was Sie zusammen mit Kriterium 1 filtern möchten?

  • Sichtbares Dropdown: Möchten Sie das Symbol für Filter-Fop-Down in der gefilterten Spalte anzeigen? Wenn Sie TRUE anzeigen möchten, ist dies das Argument, wenn nicht, ist FALSE das Argument.

Wie wende ich Filter mit VBA AutoFilter an? (mit Beispiel)

Sie können diese VBA AutoFilter-Vorlage hier herunterladen - VBA AutoFilter-Vorlage

Angenommen, unter den Daten, an denen Sie arbeiten.

Mit VBA-Code wenden wir nun den Filter an. Führen Sie die folgenden Schritte aus, um den Filter anzuwenden.

Schritt 1: Starten Sie die Unterprozedur, indem Sie dem Makro einen Namen geben.

Code:

 Sub AutoFilter_Example1 () End Sub 

Schritt 2: Das erste  ist, in welchem ​​Bereich wir den Filter anwenden müssen. In diesem Fall müssen wir den Bereich von A1 bis E25 anwenden.

Code:

 Sub AutoFilter_Example1 () Range ("A1: E25") End Sub 

Schritt 3: Nachdem der Bereich ausgewählt wurde, wenden Sie jetzt die Option Autofilter an.

Code:

 Sub AutoFilter_Example1 () Bereich ("A1: E25"). AutoFilter End Sub 

Wir wählen keine Werte mit einem Autofilter aus, sondern wenden den Filter zu diesem Zeitpunkt nur an.

Führen Sie den Code mit der Taste F5 aus, oder fügen Sie manuell einen Filter für den ausgewählten Bereich ein.

Daher wurde ein Filter auf die Daten angewendet. Jetzt werden wir sehen, wie die Daten herausgefiltert werden.

Beispiel 1 - Herausfiltern von Daten mithilfe von AutoFilter

Betrachten Sie die gleichen Daten aus dem obigen Beispiel. Jetzt müssen wir die Abteilung „Finanzen“ aus der Abteilungsspalte herausfiltern.

Schritt 1: Nachdem der Filter angewendet wurde, besteht das erste Argument darin, anzugeben, aus welcher Spalte die Daten gefiltert werden. In diesem Fall müssen wir die Daten aus der Spalte Abteilung filtern, also Spaltennummer, wenn 5.

Code:

 Sub AutoFilter_Example1 () Bereich ("A1: E25"). AutoFilter-Feld: = 5, End Sub 

Schritt 2: Kriterium 1 ist nichts anderes als das, was wir aus der 5. Spalte herausfiltern möchten. Wir müssen also „Finanzen“ herausfiltern.

Code:

 Sub AutoFilter_Example1 () Range ("A1: E25"). AutoFilter Field: = 5, Criteria1: = "Finance" End Sub 

Führen Sie diesen Code manuell aus oder filtern Sie mit der Taste F5 nur "Finanzen" aus der Liste heraus.

Beispiel 2 - Operator in AutoFilter

Wir haben gesehen, wie man den einzelnen Wert filtert. Jetzt werden wir sehen, wie mehrere Elemente gefiltert werden. Angenommen, Sie möchten zusammen mit "Finanzen" auch die Abteilung "Vertrieb" filtern, damit wir dies mithilfe von Operatoren tun können .

Schritt 1: Nachdem Sie die ersten Kriterien im nächsten Argument angewendet haben, wählen Sie den Operator als "xlOr".

Code:

 Sub AutoFilter_Example2 () Range ("A1: E25"). AutoFilter Field: = 5, Criteria1: = "Finance", Operator: = xlOr End Sub 

Schritt 2: Erwähnen Sie nun in Kriterium 2 den Wert als "Umsatz".

Code:

 Sub AutoFilter_Example2 () Range ("A1: E25"). AutoFilter Field: = 5, Criteria1: = "Finance", Operator: = xlOr, Criteria2: = "Sales" End Sub 

Step 3: Ok, done run this code using F5 key or manually it will filter out both “Finance” & “Sales”.

In the Operator argument, I have used “xlOr” this will select both “Finance” & “Sales” under the filter.

Example #3 – Filter Numbers using AutoFilter

Using Operator symbol “XlAnd” we can filter out numbers as well. Assume from the Overtime column you want to filter out all the values which are >1000 but <3000.

Step 1: The first thing is changing the Field from 5 to 4.

Code:

 Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4 End Sub 

Step 2: Criteria 1 is >1000.

Code:

 Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4,Criteria1:=">1000", End Sub 

Step 3: Here we need to match both the criteria so use “xlAnd” as the operator.

Code:

 Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, End Sub 

Step 4: Criteria 2 will <3000.

Code:

 Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, Criteria2:="<3000" End Sub 

Now if you run this code manually or through the F5 key, it will filter out all the values from the Overtime column which are >1000 but <3000.

Example #4 – Filter from Different Columns using AutoFilter

In order to filter out data from different columns, we need to use a different process. Assume you want to filter out the “Finance” department and also you want to filter out Salary numbers which are >25000 but <40000.

You can use the below code does that.

Code:

 Sub AutoFilter_Example4()       With Range("A1:E25") .AutoFilter Field:=5, Criteria1:="Finance" .AutoFilter Field:=2, Criteria1:=">25000", Operator:=xlAnd, Criteria2:="<40000"       End With End Sub 

This will filter out two columns.

Run this code using the F5 key or you can run manually.

Things to Remember

  • Try different combinations under Operator to get the knowledge of VBA AutoFilter.
  • If you are not sure what to put in try using the macro recorder.
  • If you want to filter out text values then you need to supply them in double-quotes.
  • Use WITH statement to apply more than one column filter.