Les galetes ens ajuden a lliurar els nostres serveis. En utilitzar els nostres serveis, accepteu el nostre ús de cookies.
Consell: altres idiomes es tradueixen en Google. Pots visitar el English versió d'aquest enllaç.
Iniciar Sessió
x
or
x
x
Registre
x

or

Com es mostra el primer element a la llista desplegable en lloc d'en blanc?

llista de llista desplegable per defecte a la part superior de 1

La llista desplegable d'un full de càlcul pot ajudar-nos a facilitar l'entrada de dades, només hem de seleccionar els elements sense escriure-los un per un. Però, en algun moment, quan feu clic a la llista desplegable, salta primer als elements en blanc en comptes del primer element de dades, com es mostra a la següent captura de pantalla, és possible que esborreu les dades d'origen al final de la llista. Pot ser molest que hagi de desplaçar-se a la part superior d'una llista llarga per a cada cel·la de validació de dades en blanc. En aquest article, parlaré de com mostrar sempre el primer element de la llista desplegable.

Mostra el primer element a la llista desplegable en comptes de blanc amb la funció de Validació de dades

Mostra automàticament el primer element de la llista desplegable en comptes de blanc amb codi VBA


fletxa blau dreta bombolla Mostra el primer element a la llista desplegable en comptes de blanc amb la funció de Validació de dades


En realitat, per aconseguir aquest treball, només heu d'aplicar una fórmula específica quan creeu una llista desplegable, feu el següent:

1. Seleccioneu les cel·les on voleu inserir la llista desplegable i feu clic a dades > Validació de dades > Validació de dades, veure captura de pantalla:

llista de llista desplegable per defecte a la part superior de 2

2. En sortir Validació de dades quadre de diàleg, a sota del Configuració fitxa, tria llista des Permetre secció i, a continuació, introduïu aquesta fórmula: = OFFSET (Sheet3! $ A $ 1,0,0, COUNTA (Sheet3! $ A: $ A) -1,1) a la font quadre de text, veure captura de pantalla:

Nota: En aquesta fórmula, Sheet3 és el full de càlcul que conté la llista de dades d'origen, i A1 és el primer valor de la cel · la de la llista.

llista de llista desplegable per defecte a la part superior de 3

3. A continuació, feu clic a OK , ara, quan feu clic a les cel·les de la llista desplegable, el primer element de dades sempre es mostra a la part superior si hi ha valors de cel·la esborrats al final de les dades d'origen, vegeu captura de pantalla:

llista de llista desplegable per defecte a la part superior de 4


fletxa blau dreta bombolla Mostra automàticament el primer element de la llista desplegable en comptes de blanc amb codi VBA

Aquí, també puc introduir un codi VBA que us ajudi a mostrar el primer element de la llista desplegable automàticament quan feu clic a les cel·les de validació de dades.

1. Després d'inserir la llista desplegable, seleccioneu la fitxa del full de treball que conté la llista desplegable i feu clic dret per triar Veure codi des del menú contextual per anar al Microsoft Visual Basic per a aplicacions finestra i, a continuació, copieu i enganxeu el següent codi al mòdul:

Codi VBA: mostra automàticament el primer element de dades a la llista desplegable:

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

llista de llista desplegable per defecte a la part superior de 5

2. A continuació, deseu i tanqueu la finestra del codi, i ara, quan feu clic a la cel·la desplegable, el primer element de dades es mostrarà alhora.



Eines de productivitat recomanades

Pestanya d'Office

estrella d'or1 Porteu les pestanyes pràctiques a l'Excel i a un altre programari d'Office, igual que Chrome, Firefox i el nou Internet Explorer.

Kutools for Excel

estrella d'or1 Increïble! Incrementeu la productivitat en 5 minuts. No necessites cap habilitat especial, estalvieu dues hores cada dia.

estrella d'or1 300 Noves característiques per a Excel, Excel molt fàcil i potent:

  • Combina cel·les / files / columnes sense perdre dades.
  • Combina i consolida diverses fulles i llibres.
  • Comparar intervals, copiar diversos rangs, convertir text a data, unitat i conversió de divises.
  • Compte per colors, subtotals de paginació, classificació avançada i filtre súper,
  • Més Seleccioneu / Insereix / Suprimeix / Text / Format / Enllaç / Comentari / Llibres / Eines de full de càlcul ...

Tret de pantalla de Kutools per a Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Justin · 3 months ago
    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!
  • To post as a guest, your comment is unpublished.
    Justin · 3 months ago
    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
  • To post as a guest, your comment is unpublished.
    frans eilering · 7 months ago
    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"
  • To post as a guest, your comment is unpublished.
    DHARAMVIR · 1 years ago
    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,....