Πώς να εφαρμόσετε και να διαγράψετε φίλτρο από δεδομένα χρησιμοποιώντας το VBA;

Πίνακας περιεχομένων

Φίλτρο Excel VBA

Το εργαλείο φίλτρου VBA χρησιμοποιείται για την ταξινόμηση ή τη λήψη των συγκεκριμένων δεδομένων που επιθυμείτε, η συνάρτηση Autofilter χρησιμοποιείται ως συνάρτηση φύλλου εργασίας, ωστόσο αυτή η συνάρτηση έχει και άλλα ορίσματα που είναι προαιρετικά και το μόνο υποχρεωτικό όρισμα είναι η έκφραση που καλύπτει το εύρος για παράδειγμα φύλλα εργασίας ("Φύλλο1"). Εύρος ("A1"). Το Αυτόματο φίλτρο θα εφαρμόσει το φίλτρο στην πρώτη στήλη.

Το φίλτρο στο VBA λειτουργεί με τον ίδιο τρόπο που λειτουργεί στο φύλλο εργασίας. Το μόνο που είναι διαφορετικό είναι ότι μπορούμε να αυτοματοποιήσουμε τη συνήθη εργασία του φιλτραρίσματος των δεδομένων μέσω κωδικοποίησης.

Το AutoFilter είναι μια συνάρτηση που περιλαμβάνει πολλές τιμές σύνταξης. Ακολουθούν οι παράμετροι που εμπλέκονται στη λειτουργία AutoFilter.

  • Το εύρος είναι το πρώτο πράγμα που πρέπει να παρέχουμε για να χρησιμοποιήσουμε την επιλογή "Αυτόματο φίλτρο". Αυτό είναι απλώς για ποιο εύρος κελιών πρέπει να εφαρμόσουμε το φίλτρο, για παράδειγμα, Range ("A1: D50").
  • Το πεδίο είναι το πρώτο όρισμα στη συνάρτηση. Μόλις επιλεγεί το εύρος κελιών μέσω του αντικειμένου VBA RANGE, πρέπει να αναφέρουμε για ποια στήλη του εύρους θέλουμε να εφαρμόσουμε το φίλτρο.
  • Τα κριτήρια 1 δεν είναι παρά στο επιλεγμένο πεδίο, ποια τιμή θέλετε να φιλτράρετε.
  • Ο τελεστής χρησιμοποιείται σε περίπτωση που θέλετε να χρησιμοποιήσετε το όρισμα Κριτήρια 2 . Σε αυτήν την επιλογή, μπορούμε να χρησιμοποιήσουμε τις παρακάτω επιλογές.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Το Ορατό αναπτυσσόμενο μενού είναι αν θα εμφανίζεται ένα σύμβολο φίλτρου στη στήλη που εφαρμόζεται στο φίλτρο ή όχι. Εάν θέλετε να εμφανίσετε, τότε μπορείτε να δώσετε το όρισμα ως ΑΛΗΘΟΣ ή αλλιώς ΛΑΘΟΣ.

Παραδείγματα φιλτραρίσματος δεδομένων χρησιμοποιώντας VBA

Παράδειγμα # 1 - Εφαρμογή ή κατάργηση φίλτρου στα δεδομένα

Σε περίπτωση που θέλετε να εφαρμόσετε την επιλογή φίλτρου στα δεδομένα, τότε μπορούμε να απενεργοποιήσουμε και να ενεργοποιήσουμε αυτήν την επιλογή. Για παράδειγμα, δείτε την παρακάτω εικόνα δεδομένων.

Βήμα 1: Εύρος δεδομένων παροχής

Για να ενεργοποιήσουμε πρώτα την επιλογή φίλτρου, πρέπει να παρέχουμε το εύρος δεδομένων μας. Στην παραπάνω εικόνα, τα δεδομένα μας κατανέμονται από A1 έως G31, οπότε παρέχετε αυτό το εύρος χρησιμοποιώντας ένα αντικείμενο RANGE.

Κώδικας:

Sub Filter_Example () Range ("A1: G31") End Sub
Βήμα 2: Στη συνέχεια, αποκτήστε πρόσβαση στη λειτουργία AutoFilter

Τώρα αποκτήστε πρόσβαση στη λειτουργία AutoFilter για αυτό το εύρος.

Κώδικας:

Sub Filter_Example () Range ("A1: G31"). AutoFilter End Sub
Βήμα 3: Εκτελέστε τον κώδικα για να ενεργοποιήσετε το φίλτρο

Αυτό είναι όλο. Εκτελέστε αυτόν τον κωδικό για να ενεργοποιήσετε το αυτόματο φίλτρο.

Αυτός ο κωδικός λειτουργεί ως εναλλαγή και εάν το φίλτρο δεν εφαρμόζεται, τότε θα εφαρμοστεί. Εάν έχει ήδη εφαρμοστεί, τότε θα αφαιρεθεί.

Παράδειγμα # 2 - Φιλτράρετε συγκεκριμένες τιμές

Τώρα θα δούμε πώς να χρησιμοποιούμε τις παραμέτρους της επιλογής AutoFilter. Πάρτε τα ίδια δεδομένα όπως παραπάνω. Για παράδειγμα, τώρα πρέπει να φιλτράρουμε όλα τα ονόματα των φύλων "Άνδρας".

Βήμα 1: Επιλέξτε Range και Open Autofilter Function
Βήμα 2: Στη συνέχεια, επιλέξτε Πεδίο

Στο πρώτο όρισμα της συνάρτησης, δηλαδή, Field, πρέπει να αναφέρουμε την αναφορά στηλών που θα θέλαμε να φιλτράρουμε. Σε αυτό το παράδειγμα, πρέπει να φιλτράρουμε μόνο υποψήφιους "Άνδρες", που είναι η στήλη "C", οπότε ο αριθμός στήλης είναι 3.

Βήμα 3: Αναφέρετε τώρα κριτήρια

Τώρα για αυτό το παρεχόμενο Πεδίο, πρέπει να αναφέρουμε τα Κριτήρια 1, δηλαδή, ποια τιμή πρέπει να φιλτράρουμε στο προαναφερθέν Πεδίο. Πρέπει να φιλτράρουμε το "Male" από αυτήν τη στήλη.

Κώδικας:

Sub Filter_Example () Range ("A1: G31"). AutoFilter Field: = 3, Criteria1: = "Male" End Sub
Βήμα 4: Και εκτελέστε τον κωδικό

Εντάξει, αυτό είναι όλο. Αυτός ο κωδικός θα φιλτράρει μόνο υποψήφιοι "Άνδρες" τώρα.

Παράδειγμα # 3 - Χρήση του επιχειρήματος OPERATOR

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

Τώρα μέσα στη δήλωση WITH, δώστε τα πρώτα κριτήρια που θα φιλτραριστούν.

Κώδικας:

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

Τώρα στην επόμενη γραμμή, κάντε το ίδιο για "Χώρα" αλλάζοντας "Πεδίο" ως 6 και Κριτήρια ως "ΗΠΑ".

Κώδικας:

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

Τώρα αυτό θα φιλτράρει το "Graduate" μόνο για τη χώρα "US".

Πράγματα που πρέπει να θυμάστε

  • Το πρώτο πράγμα πρώτα μόνο για το αναφερόμενο εύρος φίλτρου κελιών θα εφαρμοστεί.
  • Το πεδίο δεν είναι τίποτα σε ποια στήλη θέλετε να φιλτράρετε τα δεδομένα.
  • Σε περίπτωση φιλτραρίσματος τιμών από περισσότερες από μία στήλες, χρησιμοποιήστε το με.

ενδιαφέροντα άρθρα...