Excel VBA Select Case Statement - Εξηγείται με Παραδείγματα

Το Excel VBA έχει την κατασκευή IF Then Else που μπορείτε να χρησιμοποιήσετε για την ανάλυση πολλαπλών συνθηκών και την εκτέλεση κωδικών με βάση αυτές τις συνθήκες.

Μια άλλη παρόμοια κατασκευή που σας επιτρέπει να ελέγχετε για πολλαπλές συνθήκες είναι η ΕΠΙΛΕΞΤΕ ΥΠΟΘΕΣΗ δήλωση.

Η επιλογή Περίπτωση είναι χρήσιμη όταν έχετε τρεις ή περισσότερες συνθήκες που θέλετε να ελέγξετε. Μπορείτε επίσης να το χρησιμοποιήσετε με δύο συνθήκες (αλλά πιστεύω ότι το If Else είναι πιο εύκολο στη χρήση σε αυτές τις περιπτώσεις).

Ένα απλό παράδειγμα όπου η δήλωση Επιλογή περίπτωσης είναι χρήσιμη όταν θέλετε να λάβετε τον βαθμό ενός μαθητή με βάση τις βαθμολογίες που έχει πάρει (καλύπτεται ως παράδειγμα αργότερα σε αυτό το σεμινάριο).

Σημείωση: Όλα τα παραδείγματα κωδικών που καλύπτονται σε αυτό το σεμινάριο προορίζονται να τοποθετηθούν σε μια ενότητα στο VBA.

Επιλέξτε Σύνταξη περίπτωσης

Παρακάτω είναι η σύνταξη του Select Case στο Excel VBA:

Επιλέξτε Case Test_Expression Case Value_1 Αποκλεισμός κώδικα όταν Test_Expression = Value_1 Case Value_2 Αποκλεισμός κώδικα όταν Test_Expression = Value_2 Case Value_3 Αποκλεισμός κώδικα όταν Test_Expression = Value_3 Περίπτωση άλλου κώδικα Αποκλεισμός όταν δεν πληρούται καμία από τις προϋποθέσεις περίπτωσης Τέλος Επιλογή
  • Test_Expression: Αυτή είναι η έκφραση της οποίας την τιμή αναλύουμε χρησιμοποιώντας διαφορετικές περιπτώσεις (εξηγείται καλύτερα με τα παρακάτω παραδείγματα).
  • Condition_1, Condition_2,…: Αυτές είναι οι συνθήκες στις οποίες δοκιμάζεται η έκφραση κειμένου. Εάν πληροί την προϋπόθεση, τότε εκτελείται το μπλοκ κώδικα για τη δεδομένη συνθήκη.

Για κάθε δήλωση Select Case που χρησιμοποιείτε, πρέπει να χρησιμοποιήσετε τη δήλωση End Select.

Σημείωση: Μόλις πληρούται μια προϋπόθεση, το VBA βγαίνει από την κατασκευή επιλεγμένης θήκης. Έτσι, εάν έχετε πέντε προϋποθέσεις και πληρούται η δεύτερη προϋπόθεση, το VBA θα εξέλθει από το Select Case - και οι υπόλοιπες συνθήκες δεν θα δοκιμαστούν.

Επιλέξτε Παραδείγματα Περίπτωσης

Τώρα για να καταλάβετε καλύτερα πώς να χρησιμοποιήσετε τη δήλωση Select Case στο VBA, ας δούμε μερικά παραδείγματα.

Σημειώστε ότι τα περισσότερα παραδείγματα σε αυτό το σεμινάριο προορίζονται να εξηγήσουν την έννοια. Αυτοί μπορεί να είναι ή όχι ο καλύτερος τρόπος για να γίνει η δουλειά.

Ας ξεκινήσουμε με ένα απλό παράδειγμα για να δούμε πώς το Select Case μας επιτρέπει να ελέγξουμε τις συνθήκες.

Παράδειγμα 1 - Ελέγξτε τους αριθμούς

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

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Πληκτρολογήστε έναν αριθμό μεταξύ 1 και 5") Επιλέξτε Περίπτωση UserInput Περίπτωση 1 MsgBox "Εισαγάγατε 1" Περίπτωση 2 MsgBox "Εισαγάγατε 2" Περίπτωση 3 MsgBox "Εισαγάγατε 3" Περίπτωση 4 MsgBox "Πληκτρολογήσατε 4" Περίπτωση 5 MsgBox "Πληκτρολογήσατε 5" Τέλος Επιλέξτε Τέλος υπο.

Σημειώστε ότι αυτός ο κώδικας δεν είναι καθόλου χρήσιμος και δεν είναι καν ανόητος. Για παράδειγμα, εάν εισαγάγετε 6 ή οποιαδήποτε συμβολοσειρά, δεν θα κάνει τίποτα. Αλλά όπως ανέφερα, η πρόθεσή μου εδώ είναι να δείξω πώς λειτουργεί το Select Case.

Παράδειγμα 2 - Χρήση επιλεγμένης θήκης με συνθήκη IS

Μπορείτε να χρησιμοποιήσετε μια συνθήκη IS με την κατασκευή Select Case για να ελέγξετε την τιμή των αριθμών.

Ο παρακάτω κώδικας ελέγχει εάν ο αριθμός εισόδου είναι μεγαλύτερος από 100 ή όχι.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Παρακαλώ εισάγετε έναν αριθμό") Select Case UserInput Case Is = 100 MsgBox "Πληκτρολογήσατε έναν αριθμό μεγαλύτερο από (ή ίσο με) 100" End Select End End

Παράδειγμα 3 - Χρήση άλλης περίπτωσης για την αλίευση όλων

Στο παραπάνω παράδειγμα, χρησιμοποίησα δύο συνθήκες (μικρότερες από 100 ή μεγαλύτερες ή ίσες με 100).

Αντί για τη δεύτερη περίπτωση με προϋπόθεση, μπορείτε επίσης να χρησιμοποιήσετε το Case Else.

Το Case Else ενεργεί ως αλίευση και οτιδήποτε δεν εμπίπτει σε καμία από τις προηγούμενες περιπτώσεις αντιμετωπίζεται από το Case Else.

Παρακάτω είναι ένα παράδειγμα κώδικα όπου έχω χρησιμοποιήσει το Case Else:

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Please enter a number") Select Case UserInput Case Is <100 MsgBox "Εισαγάγατε αριθμό μικρότερο από 100" Case Else MsgBox "Πληκτρολογήσατε έναν αριθμό μεγαλύτερο από (ή ίσο με ) 100 "Τέλος Επιλέξτε Τέλος υπο

Παράδειγμα 4 - Χρήση εύρους αριθμών

Στην επιλογή Περίπτωση, μπορείτε επίσης να ελέγξετε για μια σειρά αριθμών.

Ο παρακάτω κώδικας ζητάει μια είσοδο και εμφανίζει ένα πλαίσιο μηνυμάτων με βάση την τιμή.

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("Παρακαλώ εισάγετε έναν αριθμό μεταξύ 1 και 100") Επιλέξτε Περίπτωση Περίπτωση UserInput Περίπτωση 1 έως 25 MsgBox "Εισαγάγατε αριθμό μικρότερο από 25" Περίπτωση 26 έως 50 MsgBox "Εισαγάγατε έναν αριθμό μεταξύ 26 και 50 "Περίπτωση 51 έως 75 MsgBox" Εισαγάγατε έναν αριθμό μεταξύ 51 και 75 "Περίπτωση 75 έως 100 MsgBox" Εισαγάγατε έναν αριθμό μεγαλύτερο από 75 "Τέλος Επιλέξτε Τέλος υπο.

Παράδειγμα 5 - Αποκτήστε το Βαθμό με βάση τα Βαθμολογημένα Σημάδια

Μέχρι τώρα έχουμε δει βασικά παραδείγματα (τα οποία δεν είναι πραγματικά χρήσιμα στον πρακτικό κόσμο).

Ακολουθεί ένα παράδειγμα που είναι πιο κοντά σε ένα πραγματικό παράδειγμα, όπου μπορείτε να χρησιμοποιήσετε το Select Case στο Excel VBA.

Ο παρακάτω κώδικας θα σας δώσει τον βαθμό που παίρνει ένας μαθητής βάσει των βαθμών σε μια εξέταση.

Sub Grade () Dim StudentMarks As Integer Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") Select Case StudentMarks Case Is <33 FinalGrade = "F" Case 33 To 50 FinalGrade = "E" Case 51 To 60 FinalGrade = "D "Case 60 To 70 FinalGrade =" C "Case 70 To 90 FinalGrade =" B "Case 90 To 100 FinalGrade =" A "End Select MsgBox" The Grade is "& FinalGrade End Sub

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

Στον παραπάνω κώδικα, έχω καθορίσει όλες τις προϋποθέσεις - για τα σήματα 0 - 100.

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

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

Sub CheckOddEven () Dim StudentMarks As Integer Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") Select Case StudentMarks Case Is <33 FinalGrade = "F" Case 33 To 50 FinalGrade = "E" Case 51 To 60 FinalGrade = "D "Case 60 To 70 FinalGrade =" C "Case 70 To 90 FinalGrade =" B "Case Else FinalGrade =" A "End Select MsgBox" The Grade is "& FinalGrade End Sub

Παράδειγμα 6 - Δημιουργία προσαρμοσμένης συνάρτησης (UDF) με χρήση επιλογής περίπτωσης

Στο παραπάνω παράδειγμα, ο κώδικας ζήτησε από τον χρήστη την εισαγωγή σημάτων.

Μπορείτε επίσης να δημιουργήσετε μια προσαρμοσμένη συνάρτηση (Συνάρτηση καθορισμένη από το χρήστη) που μπορεί να χρησιμοποιηθεί όπως κάθε συνάρτηση φύλλου εργασίας και η οποία θα επιστρέψει τον βαθμό των μαθητών.

Παρακάτω είναι ο κώδικας που θα δημιουργήσει τον προσαρμοσμένο τύπο:

Συνάρτηση GetGrade (StudentMarks As Integer) Dim FinalGrade As String Select Case StudentMarks Case Is <33 FinalGrade = "F" Περίπτωση 33 έως 50 FinalGrade = "E" Περίπτωση 51 έως 60 FinalGrade = "D" Περίπτωση 60 έως 70 FinalGrade = "C" Περίπτωση 70 έως 90 FinalGrade = "B" Case Else FinalGrade = "A" End Select GetGrade = FinalGrade End Function

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

Παράδειγμα 7 - Ελέγξτε ODD / EVEN με Select Case

Παρακάτω είναι ένα παράδειγμα κώδικα όπου ελέγχω αν ο αριθμός στο κελί Α1 είναι μονός ή ζυγός.

Sub CheckOddEven () CheckValue = Range ("A1"). Value Select Case (CheckValue Mod 2) = 0 Case True MsgBox "Ο αριθμός είναι ζυγός" Case False MsgBox "The number is odd" End Select End Sub

Παράδειγμα 8 - Έλεγχος για καθημερινή/Σαββατοκύριακο (πολλαπλές συνθήκες)

Μπορείτε επίσης να χρησιμοποιήσετε την επιλογή Περίπτωση για να ελέγξετε για πολλές τιμές στην ίδια περίπτωση.

Για παράδειγμα, ο παρακάτω κώδικας χρησιμοποιεί την τρέχουσα ημερομηνία για να δείξει εάν σήμερα είναι καθημερινή ή Σαββατοκύριακο (όπου οι ημέρες του Σαββατοκύριακου είναι Σάββατο και Κυριακή)

Sub CheckWeekday () Select Case Weekday (Now) Case 1, 7 MsgBox "Today is a Weekend" Case Else MsgBox "Today is a Weekday" End Select End End

Στον παραπάνω κώδικα, ελέγχουμε για δύο συνθήκες (1 και 7) στην ίδια περίπτωση.

Σημείωση: Η συνάρτηση της εβδομάδας επιστρέφει 1 για την Κυριακή και 7 για το Σάββατο.

Παράδειγμα 9 - Nested Select Case Statements

Μπορείτε επίσης να τοποθετήσετε μία πρόταση Επιλογής περίπτωσης σε άλλη.

Παρακάτω είναι ένας κωδικός που ελέγχει αν μια μέρα είναι καθημερινή ή Σαββατοκύριακο και αν είναι Σαββατοκύριακο, τότε θα εμφανίζεται αν είναι Σάββατο ή Κυριακή.

Sub CheckWeekday () Select Case Weekday (Now) Case 1, 7 Select Case Weekday (Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End Select Case Else MsgBox "Today is a Weekday" End Select End Υπο

Στον παραπάνω κώδικα, ένθεσα την Επιλεγμένη περίπτωση για να ελέγξω αν το Σαββατοκύριακο είναι Σάββατο ή Κυριακή.

Σημείωση: Το παράδειγμα που φαίνεται παραπάνω είναι για να εξηγήσει την έννοια. Αυτός δεν είναι ο καλύτερος ή ο πιο πρακτικός τρόπος για να μάθετε την εβδομάδα/το Σαββατοκύριακο.

Παράδειγμα 10 - Έλεγχος συμβολοσειράς κειμένου με επιλεγμένη περίπτωση

Μπορείτε να ελέγξετε συγκεκριμένες συμβολοσειρές χρησιμοποιώντας την Επιλογή περίπτωσης και, στη συνέχεια, να εκτελέσετε κώδικα βάσει αυτής.

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

Sub OnboardConnect () Dim Department As String Department = InputBox ("Enter Your Department Name") Select Case Department Case "Marketing" MsgBox "Connect for Bob Raines for Onboarding" Case "Finance" MsgBox "Connect with Patricia Cruz for Onboarding" Θήκη "HR" MsgBox "Συνδεθείτε με τον Oliver Rand για την ενσωμάτωση" Case "Admin" MsgBox "Συνδεθείτε με την Helen Hume for Onboarding" Case Else MsgBox "Συνδεθείτε με τον Tony Randall for Onboarding" End Select End Sub

Ελπίζω ότι όλα τα παραπάνω παραδείγματα ήταν χρήσιμα για την κατανόηση της έννοιας και της εφαρμογής του Select Case στο Excel VBA.

Μπορεί επίσης να σας αρέσουν τα ακόλουθα μαθήματα VBA:

  • Excel VBA Loops - For Next, Do while, Do till, για καθένα.
  • Για επόμενο βρόχο στο Excel VBA.
  • Πώς να καταγράψετε μια μακροεντολή στο Excel.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave