Preskoči na glavno vsebino

Kako samodokončati pri vnašanju spustnega seznama v Excelu?

Avtor: Siluvia Zadnja sprememba: 2024-03-22

Za spustni seznam za preverjanje veljavnosti podatkov s številnimi elementi se morate pomikati gor in dol po seznamu, da poiščete tistega, ki ga potrebujete, ali pravilno vnesti celotno besedo v seznamsko polje. Ali obstaja način, da se spustni seznam samodejno izpolni, ko vnašate ustrezne znake? To bi ljudem pomagalo učinkoviteje delati na delovnih listih s spustnimi seznami v celicah. Ta vadnica ponuja dve metodi, ki vam bosta to pomagala doseči.

Naj bodo spustni seznami samodokončani s kodo VBA
Preprosto ustvarite samodokončanje spustnih seznamov v 2 sekundah

Več vadnic za spustni seznam ...


Naj bodo spustni seznami samodokončani s kodo VBA

Naredite naslednje, če želite, da se spustni seznam samodejno dokonča po vnosu ustreznih črk v celico.

Najprej morate na delovni list vstaviti kombinirano polje in spremeniti njegove lastnosti.
  1. Odprite delovni list, ki vsebuje celice spustnega seznama, za katere želite, da se samodejno izpolnijo.
  2. Preden vstavite kombinirano polje, morate na Excelov trak dodati zavihek Razvijalec. Če je na traku prikazan zavihek Razvijalec, prestavite na 3. korak. V nasprotnem primeru naredite naslednje, da se zavihek Razvijalec prikaže na traku: Kliknite file > možnosti da odprete možnosti okno. V tem Možnosti programa Excel okno, kliknite Prilagodite trak v levem podoknu preverite Razvojni in nato kliknite OK . Oglejte si posnetek zaslona:
  3. klik Razvojni > Vstavi > Kombinirana škatla (nadzor ActiveX).
  4. Narišite kombinirano polje na trenutnem delovnem listu. Desni klik in nato izberite Nepremičnine v meniju z desnim klikom.
  5. v Nepremičnine v pogovornem oknu, zamenjajte izvirno besedilo v (Ime) polje s TempCombo.
  6. Izklopite Način oblikovanja s klikom Razvojni > Način oblikovanja.
Nato uporabite spodnjo kodo VBA
  1. Desni klik na trenutni zavihek lista in kliknite Ogled kode iz kontekstnega menija. Oglejte si posnetek zaslona:
  2. V uvodu Microsoft Visual Basic za aplikacije okno, kopirajte in prilepite spodnjo kodo VBA v okno kode delovnega lista.
    Koda VBA: Samodokončanje pri vnašanju spustnega seznama
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Update by Extendoffice: 2020/01/16
        Dim xCombox As OLEObject
        Dim xStr As String
        Dim xWs As Worksheet
        Dim xArr
        
        Set xWs = Application.ActiveSheet
        On Error Resume Next
        Set xCombox = xWs.OLEObjects("TempCombo")
        With xCombox
            .ListFillRange = ""
            .LinkedCell = ""
            .Visible = False
        End With
        If Target.Validation.Type = 3 Then
            Target.Validation.InCellDropdown = False
            Cancel = True
            xStr = Target.Validation.Formula1
            xStr = Right(xStr, Len(xStr) - 1)
            If xStr = "" Then Exit Sub
            With xCombox
                .Visible = True
                .Left = Target.Left
                .Top = Target.Top
                .Width = Target.Width + 5
                .Height = Target.Height + 5
                .ListFillRange = xStr
                If .ListFillRange = "" Then
                    xArr = Split(xStr, ",")
                    Me.TempCombo.List = xArr
                End If
                .LinkedCell = Target.Address
            End With
            xCombox.Activate
            Me.TempCombo.DropDown
        End If
    End Sub
    Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        Select Case KeyCode
            Case 9
                Application.ActiveCell.Offset(0, 1).Activate
            Case 13
                Application.ActiveCell.Offset(1, 0).Activate
        End Select
    End Sub
  3. Pritisnite druga + Q tipke hkrati, da zaprete tipko Aplikacije Microsoft Visual Basic okno.

Od zdaj naprej se bo, ko kliknete celico spustnega seznama, samodejno pozval. Lahko začnete tipkati črko, da se ustrezni element samodejno dokonča v izbrani celici. Oglejte si posnetek zaslona:

Opomba: Ta koda ne deluje za združene celice.

Preprosto ustvarite samodokončanje spustnega seznama v 2 sekundah

Za večino uporabnikov Excela je zgornjo metodo VBA težko obvladati. Toda z Spustni seznam, ki ga je mogoče iskati značilnost Kutools za Excel, lahko preprosto omogočite samodokončanje za spustne sezname za preverjanje podatkov v določen obseg v samo 2 sekundah. Še več, ta funkcija je na voljo za vse različice Excela.

Nasvet: Preden uporabite to orodje, namestite Kutools za Excel najprej. Pojdite na brezplačen prenos zdaj.

  1. Če želite omogočiti samodejno dokončanje na spustnih seznamih, najprej izberite obseg s spustnimi meniji. Nato se pomaknite do Kutools izberite jeziček Spustni seznam > Omogoči iskanje po spustnem seznamu, samodejno pojavno okno.
  2. v Omogočite iskanje po spustnem seznamu pogovornem oknu kliknite OK da shranite nastavitev.
Rezultat

Ko je konfiguracija končana, se s klikom na celico spustnega seznama v določenem obsegu prikaže polje s seznamom. Pri vnašanju znakov, če se en element natančno ujema, je celotna beseda takoj označena v polju s seznamom in jo je mogoče zapolniti v celico spustnega seznama preprosto s pritiskom na tipko Enter.

Opombe: Če želite uporabiti to funkcijo, prosim prenesite in namestite Kutools za Excel prvi. Ali pa lahko kliknite, če želite izvedeti več o tej funkciji.

Sorodni članki:

Kako ustvariti spustni seznam z več potrditvenimi polji v Excelu?
Mnogi uporabniki Excela ponavadi ustvarijo spustni seznam z več potrditvenimi polji, da lahko na seznamu naenkrat izberejo več elementov. S preverjanjem podatkov dejansko ne morete ustvariti seznama z več potrditvenimi polji. V tej vadnici vam bomo pokazali dva načina za ustvarjanje spustnega seznama z več potrditvenimi polji v Excelu. Ta vadnica ponuja metodo za reševanje težave.

Ustvari spustni seznam iz drugega delovnega zvezka v Excelu
Na delovnih listih v delovnem zvezku je zelo enostavno ustvariti spustni seznam za preverjanje veljavnosti podatkov. Če pa se podatki seznama, ki jih potrebujete za preverjanje podatkov, nahajajo v drugi delovni knjigi, kaj bi storili? V tej vadnici boste podrobno izvedeli, kako iz drugega delovnega zvezka v Excelu ustvarite spustni seznam.

Ustvarite spustni seznam, ki ga je mogoče iskati v Excelu
Za spustni seznam s številnimi vrednostmi iskanje pravega ni lahko delo. Prej smo uvedli način samodejnega dokončanja spustnega seznama, ko v spustnem polju vnesemo prvo črko. Poleg funkcije samodokončanja lahko po spustnem seznamu omogočite tudi iskanje za povečanje delovne učinkovitosti pri iskanju ustreznih vrednosti na spustnem seznamu. Če želite omogočiti iskanje po spustnem seznamu, poskusite z metodo v tej vadnici.

Samodejno izpolnite druge celice pri izbiri vrednosti v spustnem seznamu Excel
Recimo, da ste ustvarili spustni seznam na podlagi vrednosti v obsegu celic B8: B14. Ko izberete katero koli vrednost na spustnem seznamu, želite, da se ustrezne vrednosti v območju celic C8: C14 samodejno vnesejo v izbrano celico. Za rešitev težave vam bodo storitve v tej vadnici naredile uslugo.

Več vadnic za spustni seznam ...

Najboljša pisarniška orodja za produktivnost

🤖 Kutools AI Aide: Revolucionirajte analizo podatkov na podlagi: Inteligentna izvedba   |  Ustvari kodo  |  Ustvarite formule po meri  |  Analizirajte podatke in ustvarite grafikone  |  Prikličite funkcije Kutools...
Priljubljene funkcije: Poiščite, označite ali identificirajte dvojnike   |  Izbriši prazne vrstice   |  Združite stolpce ali celice brez izgube podatkov   |   Krog brez formule ...
Super iskanje: Več kriterijev VLookup    Multiple Value VLookup  |   VLookup na več listih   |   Nejasno iskanje ....
Napredni spustni seznam: Hitro ustvarite spustni seznam   |  Odvisni spustni seznam   |  Večkrat izberite spustni seznam ....
Upravitelj stolpcev: Dodajte določeno število stolpcev  |  Premakni stolpce  |  Preklop stanja vidnosti skritih stolpcev  |  Primerjaj obsege in stolpce ...
Predstavljene funkcije: Mrežni fokus   |  Pogled oblikovanja   |   Velika vrstica formule    Upravitelj delovnih zvezkov in listov   |  Knjižnica virov (Samodejno besedilo)   |  Izbirnik datuma   |  Združite delovne liste   |  Šifriranje/dešifriranje celic    Pošljite e-pošto po seznamu   |  Super filter   |   Poseben filter (filter krepko/ležeče/prečrtano ...) ...
15 najboljših kompletov orodij12 Besedilo Orodja (dodajanje besedila, Odstrani znake,...)   |   50 + Graf Vrste (Gantt Chart,...)   |   40+ Praktično Formule (Izračunajte starost glede na rojstni dan,...)   |   19 vstavljanje Orodja (Vstavite kodo QR, Vstavi sliko s poti,...)   |   12 Pretvorba Orodja (Številke v besede, Pretvorba valut,...)   |   7 Spoji in razdeli Orodja (Napredne kombinirane vrstice, Razdeljene celice,...)   |   ... in več

Napolnite svoje Excelove spretnosti s Kutools za Excel in izkusite učinkovitost kot še nikoli prej. Kutools za Excel ponuja več kot 300 naprednih funkcij za povečanje produktivnosti in prihranek časa.  Kliknite tukaj, če želite pridobiti funkcijo, ki jo najbolj potrebujete...

Opis


Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
Comments (325)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi, many thanks for this material. It helped a lot.
This comment was minimized by the moderator on the site
Hello,

following on from my last comment:

I'm setting up 'standard' rows with the dropdown lists in them. These I'm wanting to copy below into an extensive spreadsheet.
Unfortunately the dropdown's don't copy down when I do that after using the VBA.
Is there a way to do whats described above?

Cheers,
Catherine
This comment was minimized by the moderator on the site
Hi Catherine,
The autocomplete drop-down lists generated by VBA code cannot be copied. You can only copy selected items that are displayed in the drop-down cell. Sorry for the inconvenience.
This comment was minimized by the moderator on the site
Hello,

Have implemented this successfully, so thank you for this page and code.
But now I have an associated problem...:

After doing all of the above points, the code works as described, but I cannot do any undo/redo actions in the entire spreadsheet.
Is there a way to turn this combo box on for when I want to work with the dropdowns and off for when I want to work in other cells? so that the undo/redo actions are possible again?
and note, yes I have turned the design mode off after doing the above steps, but it still doesn't help the problem.

Cheers,
Catherine
This comment was minimized by the moderator on the site
Hi Catherine Foley,
If you want to use the undo operation on cells other than the drop-down cells, the following VBA code can help you. Please give it a try.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Update by Extendoffice: 2022/09/22
    Dim xCombox As OLEObject
    Dim xStr As String
    Dim xWs As Worksheet
    Dim xArr
    
    On Error Resume Next

    Set xWs = Application.ActiveSheet
    
    Set xCombox = xWs.OLEObjects("TempCombo")
    If Target.Validation.Type <> 3 Then
        If xCombox.Visible Then
            xCombox.Visible = False
        End If
        Exit Sub
    End If
    
    With xCombox
        .ListFillRange = ""
        .LinkedCell = ""
'        .Visible = False
    End With

    Target.Validation.InCellDropdown = False
    Cancel = True
    xStr = Target.Validation.Formula1
    xStr = Right(xStr, Len(xStr) - 1)
    If xStr = "" Then Exit Sub
    With xCombox
        .Visible = True
        .Left = Target.Left
        .Top = Target.Top
        .Width = Target.Width + 5
        .Height = Target.Height + 5
        .ListFillRange = xStr
        If .ListFillRange = "" Then
            xArr = Split(xStr, ",")
            Me.TempCombo.List = xArr
        End If
        .LinkedCell = Target.Address
    End With
    xCombox.Activate
    Me.TempCombo.DropDown

End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
        Case 9
            Application.ActiveCell.Offset(0, 1).Activate
        Case 13
            Application.ActiveCell.Offset(1, 0).Activate
    End Select
End Sub
This comment was minimized by the moderator on the site
I hope now it will be upload
This comment was minimized by the moderator on the site
This code works really well for a single drop down. However, if I have 5 dropdowns using the same list of values but they need to operate independently of each other how is that accomplished? Despite my best efforts, if I put more than one combo box on the page, any selection is one is mirrored in the other.
This comment was minimized by the moderator on the site
Hi Mbuchmeier,Only need one combo box on the page. The code works on all drop-down lists in current page. You just need to manually click on the drop-down list cell to activate the combo box.
This comment was minimized by the moderator on the site
Hi crystal,
I am working with the combo box (The VBA code from 2021/11/05). It is working great and very useful but there are 2 issues:1. Issue #1: Usually when you work on any cell in Excel, there is indication on the row number which indicate which row you work about. When the combo box is opened this indication is missing2.  Issue #2: When the combo box is opened in the last column of the dynamic table, then it isn't  working as usual: when I select value from the list, the cell remain empty until I move the cursor to another cell
Attached screenshot.
Thank in advance
This comment was minimized by the moderator on the site
Hi Yoni,Thanks for your feedback. For the issues you mentioned:1. Issue #1: Excel does not highlight the row number when selecting an object in the worksheet. Since we use a combo box to replace the data validation drop-down list to handle the autocomplete operation, we can't show the indication in this case;2. Issue #2: I have tried as you described, but the problem cannot be reproduced. The screenshot you attached does not display, you need to save the screenshot and uplode it via the "Upload files" button below.
This comment was minimized by the moderator on the site
Hi Crystal,Thanks a lot for your response. Attached the screenshot. hope it will work now
This comment was minimized by the moderator on the site
Hi Yoni,Sorry for the inconvenience. The screenshot you uploaded is still not shown on the page. You need to save the screenshot on your disk in advance and then uplode it via the "Upload files" button. See the attached screenshot.
There are no comments posted here yet
Load More
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations