Στο VBA, μπορείτε να δημιουργήσετε Αυτόματο φίλτρο για να φιλτράρετε μια σειρά κελιών ή έναν πίνακα Excel. Σε αυτό το σεμινάριο, θα μάθετε πώς να δημιουργείτε Αυτόματο φίλτρο για μία ή περισσότερες στήλες και για πολλαπλές συνθήκες.
Αν θέλετε να μάθετε πώς να χρησιμοποιείτε ένα προηγμένο φίλτρο στο VBA, κάντε κλικ εδώ: Προηγμένο φίλτρο VBA
Δημιουργία αυτόματου φίλτρου σε VBA
Αρχικά, θα δείτε πώς να δημιουργήσετε Αυτόματο φίλτρο σε ένα εύρος, ώστε ένας χρήστης να μπορεί να φιλτράρει τα δεδομένα. Τα δεδομένα που θα χρησιμοποιήσουμε στα παραδείγματα είναι στην Εικόνα 1:
Εικόνα 1. Δεδομένα για παραδείγματα αυτόματου φιλτραρίσματος
Εδώ είναι ο κώδικας για τη δημιουργία Αυτόματο φίλτρο:
1 | Sheet1.Range ("A1: E1"). Αυτόματο φίλτρο |
Για να ενεργοποιήσετε Αυτόματο φίλτρο, πρέπει να καθορίσουμε την κεφαλίδα της περιοχής, στην περίπτωσή μας A1: E1, και να χρησιμοποιήσουμε το Αυτόματο φίλτρο μέθοδο του αντικειμένου ΕύροςΤο Ως αποτέλεσμα, το εύρος δεδομένων μας έχει ενεργοποιήσει τα φίλτρα:
Εικόνα 2. Αυτόματο φίλτρο ενεργοποιημένο για τα δεδομένα
Αυτόματο φίλτρο με παραμέτρους πεδίου και κριτηρίων
Το VBA σάς επιτρέπει επίσης να φιλτράρετε αυτόματα ένα συγκεκριμένο πεδίο με συγκεκριμένες τιμές.
Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε παραμέτρους Πεδίο και Κριτήρια 1 της μεθόδου Αυτόματο φίλτροΤο Σε αυτό το παράδειγμα, θέλουμε να φιλτράρουμε την τρίτη στήλη (Προϊόν) Για Προϊόν Α μόνο. Εδώ είναι ο κωδικός:
12 | Sheet1.Range ("A1: E1"). AutoFilter Field: = 3, _Κριτήρια 1: = "Προϊόν Α" |
Στο Πεδίο παράμετρος, μπορείτε να ορίσετε τον αριθμό της στήλης στο εύρος (όχι στο Excel), ενώ στο Κριτήρια 1 μπορείτε να βάλετε την τιμή που θέλετε να φιλτράρετε. Μετά την εκτέλεση του κώδικα, ο πίνακας μας μοιάζει με αυτόν:
Εικόνα 3. Αυτόματο φίλτρο με πεδίο και κριτήρια
Όπως μπορείτε να δείτε, μόνο σειρές με Προϊόν Α στην τρίτη στήλη εμφανίζονται στην περιοχή δεδομένων.
Αυτόματο φίλτρο με τιμές πεδίου και πολλαπλών κριτηρίων
Εάν θέλετε να φιλτράρετε ένα πεδίο με πολλές τιμές, πρέπει να χρησιμοποιήσετε την παράμετρο Χειριστής απο Αυτόματο φίλτρο μέθοδος. Για να φιλτράρετε πολλές τιμές, πρέπει να ορίσετε Χειριστής προς το xlFilterValues και επίσης να βάλουμε όλες τις τιμές του Κριτήρια σε έναν πίνακα. Σε αυτό το παράδειγμα, φιλτράρουμε το Προϊόν στήλη για Προϊόν Α και Προϊόν ΒΤο Εδώ είναι το παράδειγμα του κώδικα:
123 | Sheet1.Range ("A1: E1"). Πεδίο αυτόματου φιλτραρίσματος: = 3, _Κριτήρια 1: = Πίνακας ("Προϊόν Α", "Προϊόν Β"), _Χειριστής: = xlFilterValues |
Όταν εκτελούμε τον κώδικα, λαμβάνουμε μόνο σειρές με το προϊόν Α και το προϊόν Β, όπως μπορείτε να δείτε στην εικόνα 4:
Εικόνα 4. Αυτόματο φίλτρο με τιμές πολλαπλών κριτηρίων
Εύρος δεδομένων αυτόματου φιλτραρίσματος με πολλαπλά κριτήρια
Εάν θέλετε να φιλτράρετε ένα πεδίο με πολλαπλά κριτήρια, πρέπει να το χρησιμοποιήσετε Κριτήρια 1 και Κριτήρια2 παραμέτρους, αλλά και το Χειριστής xlAnd.
Στο επόμενο παράδειγμα, θα φιλτράρουμε την πρώτη στήλη (Ημερομηνία) για ημερομηνίες τον Δεκέμβριο του 2022. Επομένως, έχουμε δύο κριτήρια: ημερομηνία μεγαλύτερη από 12/01/18 και μικρότερη από 31/12/18. Αυτός είναι ο κωδικός:
1234 | Sheet1.Range ("A1: E1"). Πεδίο αυτόματου φιλτραρίσματος: = 1, _Κριτήρια1: = "> = 12/01/2018", _Χειριστής: = xlAnd, _Κριτήρια2: = "<= 31/12/2018" |
Όταν εκτελούμε τον κώδικα, μπορείτε να δείτε ότι μόνο οι ημερομηνίες του Δεκεμβρίου εμφανίζονται στο εύρος δεδομένων:
Εικόνα 5. Αυτόματο φίλτρο με πολλαπλά κριτήρια για το πεδίο
Τιμές παραμέτρων χειριστή της μεθόδου AutoFilter
Στον επόμενο πίνακα. μπορείτε να δείτε όλες τις πιθανές τιμές του Χειριστής παράμετρος της μεθόδου AutoFilter και οι περιγραφές τους:
Χειριστής | Περιγραφή |
xlΚαι | Περιλαμβάνει πολλαπλά κριτήρια - Κριτήρια 1 και Κριτήρια 2 |
xlOr | Περιλαμβάνει ένα από τα πολλαπλά κριτήρια - Κριτήρια 1 ή Κριτήρια 2 |
xlTop10Είδη | Φιλτράρει έναν ορισμένο αριθμό τιμών με υψηλότερη κατάταξη (αριθμός που καθορίζεται στα Κριτήρια 1) |
xlBottom10Items | Φιλτράρει έναν ορισμένο αριθμό τιμών χαμηλότερης κατάταξης (αριθμός που καθορίζεται στα Κριτήρια 1) |
xlTop10Percent | Φιλτράρει ένα ορισμένο ποσοστό των τιμών με την υψηλότερη κατάταξη (% καθορίζεται στα Κριτήρια 1) |
xlBottom10Percent | Φιλτράρει ένα ορισμένο ποσοστό των χαμηλότερων τιμών (% καθορίζεται στα Κριτήρια 1) |
xlFilterValues | Περιλαμβάνει τιμές πολλαπλών κριτηρίων με τον πίνακα |
xlFilterCellColor | Φιλτράρει κελιά για χρώματα |
xlFilterFontColor | Φιλτράρει κελιά για χρώματα γραμματοσειράς |
xlFIlterIcon | Εικονίδια φίλτρων |
xlFilterDynamic | Φιλτράρετε δυναμικές τιμές |