Πίνακας περιεχομένων
Excel Εντολή ταξινόμησης & φίλτρου έχει περιορισμένη εμβέλεια σε Δεδομένα φίλτρου . Αλλά χρησιμοποιώντας VBA μπορείτε να Δεδομένα φίλτρου σε ένα ευρύ φάσμα όπως εσείς επιθυμείτε. Αυτό το άρθρο θα σας δώσει 8 χρήσιμα παραδείγματα για να χρησιμοποιήσετε VBA κωδικός σε Δεδομένα φίλτρου στο excel χρησιμοποιώντας VBA κώδικες με ζωντανή εικονογράφηση.
Κατεβάστε το βιβλίο ασκήσεων
Μπορείτε να κατεβάσετε το δωρεάν πρότυπο Excel από εδώ και να εξασκηθείτε μόνοι σας.
Κώδικας VBA για να φιλτράρετε Data.xlsm8 παραδείγματα χρήσης κώδικα VBA για το φιλτράρισμα δεδομένων στο Excel
Ας γνωρίσουμε πρώτα το σύνολο δεδομένων μας που αντιπροσωπεύει κάποια Φύλο, κατάσταση και ηλικία των μαθητών .
1. Χρήση κώδικα VBA για να φιλτράρετε δεδομένα με βάση ένα κριτήριο κειμένου στο Excel
Στο πρώτο μας παράδειγμα, θα χρησιμοποιήσουμε το VBA στο Φίλτρο μόνο Αρσενικό φοιτητές από το Φύλο στήλη του συνόλου δεδομένων.
Βήματα:
- Κάντε δεξί κλικ στο στο τίτλος φύλλου .
- Τότε επιλέξτε View Code από το Μενού περιβάλλοντος .
Αμέσως μετά, ένα VBA θα ανοίξει το παράθυρο.
- Τύπος τα ακόλουθα κωδικοί σε αυτό-
Sub Filter_Data_Text() Worksheets("Text Criteria").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub
- Αργότερα, ελαχιστοποιήστε το VBA
Ανάλυση κώδικα
- Εδώ, δημιούργησα ένα Υπο διαδικασία, Filter_Data_Text() .
- Στη συνέχεια χρησιμοποιήθηκε το Εύρος ιδιότητα για να δηλώσουμε τις αντίστοιχες όνομα φύλλου και εύρος
- Στη συνέχεια, χρησιμοποίησα η μέθοδος AutoFilter για χρήση Κριτήρια της επιλογής μου όπου Πεδίο:=2 σημαίνει στήλη 2 . και Κριτήριο1:="Άνδρας" στο Φίλτρο τα δεδομένα για Αρσενικό.
- Μετά από αυτό, για να ανοιχτό το Παράθυρο διαλόγου Μακροεντολές , κάντε κλικ στο ως εξής: Προγραμματιστής> Μακροεντολές.
- Επιλέξτε το Όνομα μακροεντολής όπως αναφέρεται στο κωδικοί .
- Τέλος, απλά πατήστε Run .
Τώρα ρίξτε μια ματιά ότι έχουμε μόνο Δεδομένα ανδρών φοιτητών μετά το Φιλτράρισμα .
Διαβάστε περισσότερα: Excel Φίλτρο δεδομένων με βάση την τιμή κελιού (6 αποτελεσματικοί τρόποι)
2. Εφαρμογή κώδικα VBA για το φιλτράρισμα δεδομένων με πολλαπλά κριτήρια σε μία στήλη
Εδώ, θα Φίλτρο για πολλαπλά κριτήρια σε μία στήλη. Από τη στήλη νούμερο τρία του συνόλου δεδομένων, θα Φίλτρο για το Απόφοιτος και Μεταπτυχιακές σπουδές φοιτητές.
Βήματα:
- Ακολουθήστε τα δύο πρώτα βήματα του πρώτο παράδειγμα για να ανοίξετε το Παράθυρο VBA .
- Αργότερα, τύπος τα ακόλουθα κωδικοί σε αυτό-
Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub
- Στη συνέχεια, ελαχιστοποιήστε το VBA
Ανάλυση κώδικα
- Εδώ, δημιούργησα ένα Υπο διαδικασία, Filter_One_Column() .
- Στη συνέχεια χρησιμοποιήθηκε το Εύρος ιδιότητα για να δηλώσουμε τις αντίστοιχες όνομα φύλλου και εύρος
- Στη συνέχεια, χρησιμοποίησα η μέθοδος AutoFilter για να χρησιμοποιήσετε το Κριτήρια της επιλογής μου όπου Πεδίο:=3 σημαίνει στήλη 3 . εδώ, Κριτήριο1:="Απόφοιτος" και Κριτήρια2:="Μεταπτυχιακό" στο Φίλτρο του μαθητή Κατάσταση .
- Τέλος, χρησιμοποίησα Χειριστής:=xlOr για να εφαρμόσετε Ή κατάσταση Φίλτρο για πολλαπλά κριτήρια.
- Αυτή τη στιγμή, ακολουθήστε το τρίτο βήμα από το πρώτο παράδειγμα για να ανοίξετε το Διάλογος μακροεντολών κουτί .
- Αργότερα, επιλέξτε το καθορισμένο Όνομα μακροεντολής και πατήστε Run .
Σύντομα, θα λάβετε τις φιλτραρισμένες γραμμές με βάση πολλαπλά κριτήρια, όπως στην παρακάτω εικόνα.
Διαβάστε περισσότερα: Φιλτράρισμα πολλαπλών κριτηρίων στο Excel (4 κατάλληλοι τρόποι)
3. Εφαρμόστε κώδικα VBA για να φιλτράρετε δεδομένα με πολλαπλά κριτήρια σε διαφορετικές στήλες στο Excel
Τώρα θα Φίλτρο για πολλαπλά κριτήρια- Αρσενικό και Απόφοιτος φοιτητές.
Βήματα:
- Ακολουθήστε τα δύο πρώτα βήματα του πρώτο παράδειγμα για να ανοίξετε το VBA
- Αργότερα, γράψτε τα ακόλουθα κωδικοί σε αυτό-
Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub
- Μετά από αυτό ελαχιστοποίηση του παραθύρου της VBA .
Ανάλυση κώδικα
- Εδώ, δημιούργησα ένα Υπο διαδικασία, Filter_Different_Columns() .
- Στη συνέχεια, χρησιμοποίησα το Με δήλωση για χρήση Πολλαπλή στήλη .
- Στη συνέχεια χρησιμοποιήθηκε το Εύρος ιδιότητα για να δηλώσουμε τις αντίστοιχες όνομα φύλλου και εύρος
- Στη συνέχεια, χρησιμοποίησα η μέθοδος AutoFilter για χρήση Κριτήρια της επιλογής μου όπου Πεδίο:=2 σημαίνει στήλη 2 και Πεδίο:=3 σημαίνει στήλη 3 .
- Εδώ, επιλεγμένα Κριτήριο1:="Άνδρας" για το Φύλο στήλη και Κριτήριο1:="Απόφοιτος" για το Κατάσταση στήλη σε Φίλτρο δεδομένα από διαφορετικές στήλες .
- Τότε ακολουθήστε το τρίτο βήμα από το πρώτο παράδειγμα για να ανοίξετε το Παράθυρο διαλόγου Μακροεντολές .
- Αργότερα, επιλέξτε το καθορισμένο Όνομα μακροεντολής και πατήστε Run .
Εδώ είναι η έξοδος των πολλαπλών κριτηρίων.
Διαβάστε περισσότερα: Excel VBA για να φιλτράρετε στην ίδια στήλη με πολλαπλά κριτήρια (6 παραδείγματα)
4. Χρησιμοποιήστε κώδικα VBA για να φιλτράρετε τα 3 κορυφαία στοιχεία στο Excel
Σε αυτό το παράδειγμα, θα φιλτράρουμε το τρεις κορυφαίοι μαθητές σύμφωνα με τους ηλικία .
Βήματα:
- Ακολουθήστε τα δύο πρώτα βήματα του πρώτο παράδειγμα για να ανοίξετε το Παράθυρο VBA .
- Τότε τύπος τα ακόλουθα κωδικοί σε αυτό-
Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub
- Μετά από αυτό ελαχιστοποιήστε το Παράθυρο VBA .
Ανάλυση κώδικα
- Εδώ, δημιούργησα ένα Υπο διαδικασία, Filter_Top3_Items() .
- Και στη συνέχεια χρησιμοποίησε Χειριστής:=xlTop10Items στο Φίλτρο για το οι τρεις πρώτοι δεδομένα .
- Τώρα ακολουθήστε το τρίτο βήμα από το πρώτο παράδειγμα για να ανοίξετε το Διάλογος μακροεντολών κουτί .
- Τότε επιλέξτε το όνομα της μακροεντολής όπως αναφέρεται στους κώδικες και πατήστε Run .
Τότε θα λάβετε την έξοδο όπως στην παρακάτω εικόνα-
Διαβάστε περισσότερα: Πώς να φιλτράρετε με βάση την τιμή κελιού χρησιμοποιώντας το Excel VBA (4 μέθοδοι)
Παρόμοιες αναγνώσεις
- Πώς να αντιγράψετε και να επικολλήσετε όταν εφαρμόζεται φίλτρο στο Excel
- Πώς να φιλτράρετε μοναδικές τιμές στο Excel (8 εύκολοι τρόποι)
- Φιλτράρισμα πολλαπλών κριτηρίων στο Excel με VBA (και οι δύο τύποι AND και OR)
- Πώς να χρησιμοποιήσετε το φίλτρο κειμένου στο Excel (5 παραδείγματα)
- Πώς να φιλτράρετε με βάση την ημερομηνία στο Excel (4 γρήγορες μέθοδοι)
5. Χρησιμοποιήστε κώδικα VBA για να φιλτράρετε τα 50 κορυφαία ποσοστά στο Excel
Ας χρησιμοποιήσουμε VBA κωδικούς για να φιλτράρετε το πάνω από το πενήντα τοις εκατό των μαθητών με βάση την ηλικία τους .
Βήματα:
- Πρώτον, Ακολουθήστε τα δύο πρώτα βήματα του πρώτο παράδειγμα για να ανοίξετε το Παράθυρο VBA .
- Αργότερα, τύπος τα ακόλουθα κωδικοί σε αυτό-
Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Πεδίο:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub
- Ελαχιστοποιήστε το Παράθυρο VBA .
Ανάλυση κώδικα
- Εδώ, δημιούργησα ένα Υπο διαδικασία, Filter_Top50_Percent() .
- Αργότερα, χρησιμοποιήθηκε Χειριστής:=xlTop10Percent στο Φιλτράρετε το κορυφαίο πενήντα τοις εκατό από στήλη-4 .
- Αυτή τη στιγμή, ακολουθήστε το τρίτο βήμα από το πρώτο παράδειγμα για να ανοίξετε το Παράθυρο διαλόγου Μακροεντολές.
- Τότε επιλέξτε το καθορισμένο Όνομα μακροεντολής και πατήστε Run .
Υπήρξαν συνολικά 7 μαθητές έτσι για 50 τοις εκατό , δείχνει περίπου τρεις μαθητές .
Διαβάστε περισσότερα: Πώς να χρησιμοποιήσετε τη φόρμουλα ποσοστού κέρδους στο Excel (3 παραδείγματα)
6. Εφαρμογή κώδικα VBA για το φιλτράρισμα δεδομένων με χρήση Wildcard
Μπορούμε να χρησιμοποιήσουμε Χαρακτήρες μπαλαντέρ-* (αστερίσκος) στο Κώδικες VBA για να φιλτράρετε τα δεδομένα στο Excel. Στήλη κατάστασης , θα φιλτράρουμε μόνο το τιμές που περιέχουν 'Post' .
Βήματα:
- Ακολουθήστε τα δύο πρώτα βήματα του πρώτο παράδειγμα για να ανοίξετε το Παράθυρο VBA .
- Τότε γράψτε τα ακόλουθα κωδικοί σε αυτό-
Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub
- Αργότερα, ελαχιστοποιήστε το Παράθυρο VBA .
Ανάλυση κώδικα
- Εδώ, δημιούργησα ένα Υπο διαδικασία, Filter_with_Wildcard() .
- Στη συνέχεια χρησιμοποιήθηκε Εύρος ("B4") για να ορίσετε το εύρος.
- Επόμενο , χρησιμοποιημένο AutoFilter στο Φίλτρο στο Πεδίο:=3 σημαίνει στήλη 3.
- Κριτήρια1:="*Post*" στο Φίλτρο τις τιμές που περιέχουν 'Post'.
- Τώρα ακολουθήστε το τρίτο βήμα από το πρώτο παράδειγμα για να ανοίξετε το Παράθυρο διαλόγου Μακροεντολές.
- Επιλέξτε το καθορισμένο Όνομα μακροεντολής και πατήστε Run .
Τότε θα έχετε την επιθυμητή έξοδο.
Διαβάστε περισσότερα: Πώς να προσθέσετε φίλτρο στο Excel (4 μέθοδοι)
7. Ενσωματώστε το Excel VBA για να αντιγράψετε φιλτραρισμένα δεδομένα σε ένα νέο φύλλο του Excel
Βλέπετε ότι υπάρχουν κάποια φιλτραρισμένα δεδομένα στο σύνολο δεδομένων μου. Τώρα θα τα αντιγράψω σε ένα νέο φύλλο χρησιμοποιώντας VBA . Αυτοί οι κωδικοί δεν θα λειτουργήσουν σωστά στο φύλλο, θα πρέπει να τους εφαρμόσετε στην ενότητα.
Βήματα:
- Πατήστε Alt+F11 για να ανοίξετε το VBA
- Στη συνέχεια κάντε κλικ στο Εισαγωγή> Ενότητα στο ανοίξτε μια ενότητα .
- Τώρα γράψτε τα ακόλουθα κωδικοί -
Sub Copy_Filtered_Data_NewSheet() Dim xRng As Range Dim xWS As Worksheet If Worksheets("Copy Filtered Data").AutoFilterMode = False Then MsgBox "Noo filtered data" Exit Sub End If Set xRng = Worksheets("Copy Filtered Data").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4") End Sub
- Στη συνέχεια, ελαχιστοποιήστε το VBA
Ανάλυση κώδικα
- Εδώ, δημιούργησα ένα Υπο διαδικασία, Copy_Filtered_Data_NewSheet() .
- Μετά από αυτό δηλώνονται δύο μεταβλητές- x Rng Ως Εύρος και xWS Ως φύλλο εργασίας.
- Στη συνέχεια χρησιμοποιήθηκε ένα Δήλωση IF για να ελέγξετε Φιλτραρισμένο
- Αργότερα, χρησιμοποιήθηκε MsgBox για να εμφανιστεί η έξοδος.
- Στη συνέχεια χρησιμοποιήθηκε Φύλλα εργασίας("Αντιγραφή φιλτραρισμένων δεδομένων").AutoFilter.Range για να επιλέξετε το Φιλτραρισμένο εύρος και χρησιμοποιείται Προσθέστε για να προσθέσετε ένα νέο φύλλο.
- Τέλος, Αντιγραφή Range("G4") θα αντιγράψει το Φιλτραρισμένο δεδομένα στο νέο φύλλο .
- Αργότερα, ακολουθήστε το τρίτο βήμα από το πρώτο παράδειγμα για να ανοίξετε το Παράθυρο διαλόγου Μακροεντολές .
- Τότε επιλέξτε το καθορισμένο Όνομα μακροεντολής και πατήστε Run .
Τώρα δείτε ότι το Excel έχει ανοίξει ένα νέο φύλλο και έχει αντιγράψει τις φιλτραρισμένες γραμμές.
Διαβάστε περισσότερα: Συντόμευση για το φίλτρο του Excel (3 γρήγορες χρήσεις με παραδείγματα)
8. Εφαρμογή κώδικα VBA για το φιλτράρισμα δεδομένων με χρήση αναπτυσσόμενης λίστας
Στο τελευταίο μας παράδειγμα, θα φτιάξουμε πρώτα μια αναδιπλούμενη λίστα για τα φύλα και μετά θα τη χρησιμοποιήσουμε για να φιλτράρουμε τα δεδομένα. Για αυτό, έχω τοποθετήσει τα κριτήρια φύλου σε μια άλλη θέση και θα φτιάξουμε μια αναδιπλούμενη λίστα στο Κελί D14 .
Βήματα:
- Επιλέξτε Κελί D14 .
- Τότε κάντε κλικ στο ως εξής: Δεδομένα> Εργαλεία δεδομένων> Επικύρωση δεδομένων> Επικύρωση δεδομένων.
Αμέσως μετά, ένα παράθυρο διαλόγου θα ανοίξει.
Επιλέξτε λίστα από το Επιτρέψτε το drop-down .
Τότε κάντε κλικ στο εικονίδιο Open από το Πλαίσιο πηγής .
Τώρα επιλέξτε το εύρος των κριτηρίων και πατήστε το κουμπί Enter .
- Αυτή τη στιγμή, απλά πατήστε OK .
Τώρα η δική μας drop-down λίστα είναι έτοιμη.
- Τώρα Ακολουθήστε τα δύο πρώτα βήματα του πρώτο παράδειγμα για να ανοίξετε το Παράθυρο VBA .
- Τότε γράψτε τα ακόλουθα κωδικοί σε αυτό-
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$14" Then If Range("D14") = "All" Then Range("B4").AutoFilter Else Range("B4").AutoFilter Field:=2, Criteria1:=Range("D14") End If End If End Sub
- Τότε ελαχιστοποίηση του παραθύρου της VBA .
Ανάλυση κώδικα
- Εδώ, δημιούργησα ένα Ιδιωτικό υποκατάστημα διαδικασία, Worksheet_Change(ByVal Target As Range).
- Στη συνέχεια, επέλεξα Φύλλο εργασίας από το Γενικά και Αλλαγή από το Δηλώσεις .
- Στη συνέχεια, ορίστε το Διεύθυνση για να γνωρίζετε την τοποθεσία.
- Τέλος, εντός του ΕΆΝ η δήλωση χρησιμοποίησε το AutoFilter μέθοδος με Πεδίο και Κριτήρια
- Τώρα απλά επιλέξτε κριτήρια από την αναπτυσσόμενη λίστα και το Το φίλτρο θα ενεργοποιηθεί .
Εδώ είναι το Φιλτραρισμένο έξοδος μετά την επιλογή Αρσενικό από το drop-down .
Διαβάστε περισσότερα: Πώς να φιλτράρετε με λίστα σε άλλο φύλλο στο Excel (2 μέθοδοι)
Τμήμα πρακτικής
Θα λάβετε ένα φύλλο εξάσκησης στο αρχείο Excel που δίνεται παραπάνω για να εξασκηθείτε στους τρόπους που εξηγήθηκαν.
Συμπέρασμα
Ελπίζω ότι οι διαδικασίες που περιγράφονται παραπάνω θα είναι αρκετά καλές για να χρησιμοποιηθούν VBA κωδικός σε Φίλτρο Μη διστάσετε να κάνετε οποιαδήποτε ερώτηση στο τμήμα σχολίων και παρακαλούμε να μου δώσετε σχόλια.