Μετάβαση στο κύριο περιεχόμενο

Πώς να εμφανίσετε το πρώτο στοιχείο στην αναπτυσσόμενη λίστα αντί για κενό;

προεπιλεγμένη λίστα εγγράφων στην κορυφή 1

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

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

Εμφανίστε αυτόματα το πρώτο στοιχείο στην αναπτυσσόμενη λίστα αντί να είναι κενό με τον κώδικα VBA


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

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

1. Επιλέξτε τα κελιά όπου θέλετε να εισαγάγετε την αναπτυσσόμενη λίστα και κάντε κλικ στο ημερομηνία > επικύρωση δεδομένων > επικύρωση δεδομένων, δείτε το στιγμιότυπο οθόνης:

προεπιλεγμένη λίστα εγγράφων στην κορυφή 2

2. Στο αναδυόμενο επικύρωση δεδομένων πλαίσιο διαλόγου, κάτω από το ρυθμίσεις καρτέλα, επιλέξτε Λίστα από το Επιτρέψτε ενότητα και, στη συνέχεια, εισαγάγετε αυτόν τον τύπο: = OFFSET (Sheet3! $ A $ 1,0,0, COUNTA (Sheet3! $ A: $ A) -1,1) μέσα στο Πηγή πλαίσιο κειμένου, δείτε το στιγμιότυπο οθόνης:

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

προεπιλεγμένη λίστα εγγράφων στην κορυφή 3

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

προεπιλεγμένη λίστα εγγράφων στην κορυφή 4


βέλος μπλε δεξιά φούσκα Εμφανίστε αυτόματα το πρώτο στοιχείο στην αναπτυσσόμενη λίστα αντί να είναι κενό με τον κώδικα VBA

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

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

Κωδικός VBA: Εμφανίστε αυτόματα το πρώτο στοιχείο δεδομένων στην αναπτυσσόμενη λίστα:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20160725
    Dim xFormula As String
    On Error GoTo Out:
    xFormula = Target.Cells(1).Validation.Formula1
    If Left(xFormula, 1) = "=" Then
        Target.Cells(1) = Range(Mid(xFormula, 1)).Cells(1).Value
    End If
Out:
End Sub

προεπιλεγμένη λίστα εγγράφων στην κορυφή 5

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

Τα καλύτερα εργαλεία παραγωγικότητας γραφείου

Δημοφιλή χαρακτηριστικά: Εύρεση, επισήμανση ή αναγνώριση διπλότυπων   |  Διαγραφή κενών γραμμών   |  Συνδυάστε στήλες ή κελιά χωρίς απώλεια δεδομένων   |   Γύρος χωρίς φόρμουλα ...
Σούπερ Αναζήτηση: VLookup πολλαπλών κριτηρίων    VLookup πολλαπλών τιμών  |   VLookup σε πολλά φύλλα   |   Ασαφής αναζήτηση ....
Σύνθετη αναπτυσσόμενη λίστα: Γρήγορη δημιουργία αναπτυσσόμενης λίστας   |  Εξαρτημένη αναπτυσσόμενη λίστα   |  Πολλαπλή αναπτυσσόμενη λίστα ....
Διαχειριστής στήλης: Προσθέστε έναν συγκεκριμένο αριθμό στηλών  |  Μετακίνηση στηλών  |  Εναλλαγή κατάστασης ορατότητας κρυφών στηλών  |  Συγκρίνετε εύρη και στήλες ...
Επιλεγμένα Χαρακτηριστικά: Εστίαση πλέγματος   |  Προβολή σχεδίου   |   Μεγάλη Formula Bar    Διαχείριση βιβλίου εργασίας & φύλλου   |  Βιβλιοθήκη πόρων (Αυτόματο κείμενο)   |  Επιλογή ημερομηνίας   |  Συνδυάστε φύλλα εργασίας   |  Κρυπτογράφηση/Αποκρυπτογράφηση κελιών    Αποστολή email ανά λίστα   |  Σούπερ φίλτρο   |   Ειδικό φίλτρο (φίλτρο με έντονη γραφή/πλάγια γραφή/διαγραφή...) ...
Κορυφαία 15 σύνολα εργαλείων12 Κείμενο Εργαλεία (Προσθήκη κειμένου, Κατάργηση χαρακτήρων, ...)   |   50 + Διάγραμμα Τύποι (Gantt διάγραμμα, ...)   |   40+ Πρακτικό ΜΑΘΗΜΑΤΙΚΟΙ τυποι (Υπολογίστε την ηλικία με βάση τα γενέθλια, ...)   |   19 Εισαγωγή Εργαλεία (Εισαγωγή κωδικού QR, Εισαγωγή εικόνας από το μονοπάτι, ...)   |   12 Μετατροπή Εργαλεία (Αριθμοί σε λέξεις, Μετατροπή Συναλλάγματος, ...)   |   7 Συγχώνευση & διαχωρισμός Εργαλεία (Σύνθετες σειρές συνδυασμού, Διαίρεση κελιών, ...)   |   ... κι αλλα

Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου.  Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...

kte καρτέλα 201905


Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
Comments (10)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
=OFFSET(Sheet3!$A$1,0,0,COUNTA(Sheet3!$A:$A)+2-1,1) I added +2 to the equation and that worked for me.
This comment was minimized by the moderator on the site
For the VDA code, how can I have only a certain cell range show the first item in the drop down list? Thank you in advance.
This comment was minimized by the moderator on the site
Hi, Akrupa,To solve your problem, maybe the following VBA code can help you:

<div data-tag="code">Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20211206
Dim xFormula As String
Dim xRg As Range
Dim xStr As String
Dim xIndex As Integer
xIndex = 2 'Here indicates the cell number of the original data,for example,the original data is A1:A10, to display the A2 cell value, please write 2 here.
On Error GoTo Out:
xFormula = Target.Cells(1).Validation.Formula1
If Left(xFormula, 1) = "=" Then
If Target.Value <> "" Then Exit Sub
xStr = Mid(xFormula, 2)
Set xRg = Application.Range(xStr)
Target.Cells(1) = xRg.Cells(xIndex).Value
End If
Out:
End Sub
Please try, hope it can help you!
This comment was minimized by the moderator on the site
Better but not quite. Using the =OFFSET(Sheet3!$A$1,0,0,COUNTA(Sheet3!$A:$A)-1,1) method eliminates the blanks but still starts you at the bottom of the very long list. I want it to start at the top of the list.
This comment was minimized by the moderator on the site
Once again, you save the day! Thanks!
This comment was minimized by the moderator on the site
Doesn't work for me. I keep getting an error message that says, "There's a problem with this formula. Not trying to type a formula? When the first character is an equal (+) or minus (-) sign, Exel thinks it's a formula.... To get around this, type an apostrophe (') first..."
This comment was minimized by the moderator on the site
Hello!

How can I set a data validation list such that if the drop down value in the cell is deleted, the cell will automatically show a default value (i.e. "-Select-")?

For example, I have a worksheet with multiple drop down lists that I want to show a default value of "-Select-" once the sheet is opened. A user will select values from the lists that will impact the result of calculations throughout the entire spreadsheet. A user may accidentally "delete" the cell contents of the lists. If this happens, rather than the cell becoming blank, I want the cell to show a default value of "-Select-". This scenario occurs in multiple random locations throughout the spreadsheet, not just in one localized place.

I was able to find the following VBA code so far, but it only applies the concept over a range, rather than just individual cells that contain drop down lists. The problem with what I have coded so far is that every single blank cell in the range ends up with "-Select-" in it. Some of the lists are in ranges, but some are also scattered throughout the sheet. The problem I'm having with my current code is that every single blank cell in the range ends up with "-Select-" in it. I'm trying to get this to apply over the entire worksheet to ONLY cells that are drop down lists.

Is what I'm trying to accomplish even possible?

Example file can be found here:
https://drive.google.com/file/d/1VoO8VgFs3IJ0ALwqfk0i8gt69UE4vEKW/view?usp=sharing

Example code:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range
' If Target.Cells.Count > 1 Then Exit Sub 'turning this off allows multiple cells to be selected and deleted at the same time
If Not Intersect(Target, Range("f2:p17")) Is Nothing Then
For Each cel In Range("f2:p17")
Application.EnableEvents = False
If IsEmpty(cel.Value) Then cel.Value = "-Select-"
Next cel
End If
Application.EnableEvents = True
End Sub


Thanks in advance!
This comment was minimized by the moderator on the site
How can I set a data validation list such that if the drop down value in the cell is deleted, the cell will automatically show the a default value (i.e. "-Select-")?

For example, I have a worksheet with multiple drop down lists that I want to show a default value of "-Select-" once the sheet is opened. A user will select values from the lists that will impact the result of calculations throughout the entire spreadsheet. A user may accidentally "delete" the cell contents. If this happens, rather than the cell becoming blank, I want the cell to show a default value of "-Select-". This scenario occurs in multiple random locations throughout the spreadsheet, not just in one localized place.

I was able to come up with the following VBA code so far, but I've only figured out how to apply the concept over a range, rather than just cells that contain a drop down list. The problem with what I have coded so far is that every single blank cell in the range ends up with "-Select-" in it.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range
' If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("f2:p17")) Is Nothing Then
For Each cel In Range("f2:p17")
Application.EnableEvents = False
If IsEmpty(cel.Value) Then cel.Value = "-Select-"
Next cel
End If
Application.EnableEvents = True
End Sub
This comment was minimized by the moderator on the site
select the cell in which you have put the listitem
the range for the listitem is "Opleiding"
in your VBA code:

selection.Value = Range("opleiding").Cells(2, 1)

the result is that the selected item of the listItem is the second item in the range "Opleiding"
This comment was minimized by the moderator on the site
After scroll down select to cells numeric data not come in series only first cell data come select 1,2 different cells and scroll down value not coming 1,2,3,4,5....... only first cell value coming 1,1,1,1,....
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations