Πώς να κάνετε πολλαπλή επιλογή από λίστα Drop Down στο Excel (3 τρόποι) -

  • Μοιραστείτε Αυτό
Hugh West

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

Πριν από την έναρξη της συνεδρίας, ας γνωρίσουμε το σύνολο δεδομένων που αποτελεί τη βάση των παραδειγμάτων μας.

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

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

Βιβλίο ασκήσεων

Μπορείτε να κατεβάσετε το βιβλίο ασκήσεων από τον παρακάτω σύνδεσμο.

Κάντε πολλαπλή επιλογή από Drop Down List.xlsm

Πολλαπλή επιλογή σε μια αναπτυσσόμενη λίστα

Πρώτα απ' όλα, πρέπει να δημιουργήσουμε μια drop-down λίστα με βάση τα stationeries μας. Ας τη δημιουργήσουμε γρήγορα. Μη διστάσετε να επισκεφθείτε το άρθρο σχετικά με την κατασκευή μιας drop-down λίστας.

Στο Επικύρωση δεδομένων επιλέξτε το παράθυρο διαλόγου ΛΙΣΤΑ τύπου δεδομένων και εισάγετε την περιοχή κελιών των στοιχείων.

B4:B11 είναι η περιοχή που περιέχει τα στοιχεία γραφικής ύλης. Τώρα θα βρείτε την αναπτυσσόμενη λίστα.

Διαβάστε περισσότερα: Excel Drop Down List ανάλογα με την επιλογή

1. Επιλογή πολλαπλών στοιχείων (Επιτρέπει την επανάληψη της επιλογής)

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

Τώρα, αν επιλέξουμε ένα άλλο στοιχείο, ας πούμε Μολύβι

τότε θα αντικαταστήσει την προηγούμενη τιμή. Μολύβι θα παραμείνει επιλεγμένη.

Για να επιλέξουμε πολλαπλά στοιχεία, πρέπει να χρησιμοποιήσουμε την εντολή VBA κώδικα. Ανοίξτε το Microsoft Visual Basic για εφαρμογές παράθυρο (πατήστε ALT + F11 για να το ανοίξετε).

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

Εδώ, είναι το παράθυρο κώδικα για Φύλλο2 στο βιβλίο εργασίας μας (έχουμε την αναπτυσσόμενη λίστα σε αυτό το φύλλο).

Μόλις ανοίξει το παράθυρο κώδικα, εισάγετε εκεί τον ακόλουθο κώδικα

 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.UndoOldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub 

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

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

Αυτός ο κώδικας θα μας επιτρέψει να επαναλάβουμε την επιλογή. Ας πούμε ότι αν επιλέξουμε Μολύβι ξανά,

θα ξαναβρούμε το στοιχείο στο πλαίσιο επιλογής.

Επεξήγηση κωδικού

Έχουμε δηλώσει δύο συμβολοσειρές Παλιά αξία και Νέα αξία .

Μπορείτε να δείτε ότι φτιάξαμε την αναπτυσσόμενη λίστα στο D4 κύτταρο, γι' αυτό και η διεύθυνση-στόχος μας είναι D4 Και επιπλέον, ελέγξαμε εκ νέου αν το κελί χρησιμοποιεί επικύρωση δεδομένων ή όχι χρησιμοποιώντας Target.SpecialCells .

Μόλις επιλεγεί μια τιμή, απενεργοποιούμε τα συμβάντα ( Application.EnableEvents = False ), ώστε οι αλλαγές να μην ενεργοποιήσουν ξανά το συμβάν. Στη συνέχεια, αποθηκεύεται το επιλεγμένο στοιχείο στο Νέα αξία .

Αφού αναιρέσουμε την αλλαγή, έχουμε ορίσει την τιμή στο Παλιά αξία . Στη συνέχεια, ελέγξτε αν το Παλιά αξία είναι κενή ή όχι. Αν είναι κενή (σημαίνει ότι έχει επιλεγεί μόνο μία τιμή), τότε επιστρέφεται η τιμή Νέα αξία . Διαφορετικά, συνδέστε τα Παλιά αξία και Νέα αξία .

Πριν από το τέλος της επαναφέρετε το συμβάν, ώστε να μπορούμε να το αλλάξουμε αν χρειαστεί.

Διαβάστε περισσότερα: Πολλαπλή εξαρτημένη αναπτυσσόμενη λίστα αναδυόμενων στοιχείων Excel VBA

2. Επιλέξτε πολλαπλά στοιχεία από την αναπτυσσόμενη λίστα (μόνο μοναδική επιλογή)

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

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

 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.ValueApplication.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & ", " & Newvalue Else: Target.Value = Oldvalue End If End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub 

Υπάρχει κάποια διαφορά σε σχέση με τον προηγούμενο κώδικα! Ρίξτε μια πιο προσεκτική ματιά, θα μπορέσετε να εντοπίσετε τη μικρή διαφορά.

Εδώ έχουμε χρησιμοποιήσει ένα VBA συνάρτηση που ονομάζεται INSTR . INSTR επιστρέφει τη θέση της πρώτης εμφάνισης μιας υποομάδας σε μια συμβολοσειρά. Επισκεφθείτε αυτό το άρθρο INSTR για περισσότερες πληροφορίες.

Χρησιμοποιώντας αυτή τη λογική πράξη με InStr(1, Oldvalue, Newvalue) = 0, έχουμε ελέγξει αν οι τιμές έχουν βρεθεί ή όχι. Αν η λογική πράξη επιστρέφει ΑΛΗΘΙΝΟ (δεν βρέθηκε νωρίτερα), τότε επιτρέπει την επιλογή του στοιχείου και τη συνένωση με την προηγούμενη τιμή.

Αποθηκεύστε τον κώδικα και τώρα προσπαθήστε να επιλέξετε ένα στοιχείο που έχει ήδη επιλεγεί.

Εδώ έχουμε ήδη επιλέξει Μολύβι , αν θέλουμε να το επιλέξουμε ξανά, δεν μπορούμε. Δεν επιτρέπει διπλές τιμές.

Διαβάστε περισσότερα: Πώς να δημιουργήσετε μια αναπτυσσόμενη λίστα από ένα άλλο φύλλο στο Excel

3. Επιλέξτε στοιχεία σε νέα γραμμή

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

Για λόγους απλότητας, συγχωνεύουμε μερικά κελιά με το D4 Για να το κάνετε αυτό, επιλέξτε τα κελιά που θέλετε να συγχωνεύσετε και κάντε κλικ στο κουμπί Συγχώνευση & Κέντρο από το Ευθυγράμμιση τμήμα του Αρχική σελίδα καρτέλα.

Το κελί θα αποκτήσει μεγαλύτερο ύψος.

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

 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.ValueApplication.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & vbNewLine & Newvalue Else: Target.Value = Oldvalue End If End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub 

Η μόνη διαφορά από τον προηγούμενο κώδικα είναι ότι αυτή τη φορά χρησιμοποιήσαμε το vbNewLine ενδιάμεσα OldValue και NewValue .

vbNewLine παρέχει μια νέα γραμμή μεταξύ των στοιχείων.

Τώρα επιλέξτε τα στοιχεία.

Επιλέγουμε ένα στοιχείο Στυλό που φαίνεται στην παραπάνω εικόνα. Τώρα επιλέξτε ένα άλλο στοιχείο.

Θα διαπιστώσετε ότι τα δύο στοιχεία βρίσκονται σε διαφορετικές γραμμές.

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

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

Συμπέρασμα

Αυτά για σήμερα. Παραθέσαμε διάφορες προσεγγίσεις για να κάνετε πολλαπλές επιλογές σε μια αναπτυσσόμενη λίστα. Ελπίζουμε να σας φανεί χρήσιμο. Μη διστάσετε να σχολιάσετε αν κάτι φαίνεται δύσκολο να κατανοήσετε. Ενημερώστε μας για άλλες μεθόδους που παραλείψαμε εδώ.

Ο Hugh West είναι ένας εξαιρετικά έμπειρος εκπαιδευτής και αναλυτής του Excel με πάνω από 10 χρόνια εμπειρίας στον κλάδο. Είναι κάτοχος πτυχίου Λογιστικής και Χρηματοοικονομικής και μεταπτυχιακού στη Διοίκηση Επιχειρήσεων. Ο Hugh έχει πάθος για τη διδασκαλία και έχει αναπτύξει μια μοναδική προσέγγιση διδασκαλίας που είναι εύκολο να ακολουθηθεί και να κατανοηθεί. Οι εξειδικευμένες γνώσεις του στο Excel έχουν βοηθήσει χιλιάδες φοιτητές και επαγγελματίες παγκοσμίως να βελτιώσουν τις δεξιότητές τους και να διαπρέψουν στην καριέρα τους. Μέσω του ιστολογίου του, ο Hugh μοιράζεται τις γνώσεις του με τον κόσμο, προσφέροντας δωρεάν μαθήματα Excel και διαδικτυακή εκπαίδευση για να βοηθήσει άτομα και επιχειρήσεις να αξιοποιήσουν πλήρως τις δυνατότητές τους.