Preskoči na glavno vsebino

Kako samodejno dokončati besedilno polje pri tipkanju v Excelu?

Excel si privzeto zapomni, kaj ste vnesli v celice trenutnega delovnega lista, in naslednjič samodejno dokonča to vsebino, ko vtipkate sorodno začetno črko v novo celico. Če pa želite, da se vsa vsebina, ki ste jo vnesli na delovni list, samodejno dokonča v besedilnem polju (ActiveX Control), kako bi to lahko storili? V tem članku je opisana metoda VBA, ki vam pomaga pri samodokončanju besedilnega polja pri vnašanju začetne črke.

Samodejno dokončajte polje z besedilom, ko tipkate s kodo VBA


Samodejno dokončajte polje z besedilom, ko tipkate s kodo VBA

Naredite naslednje, če želite, da se besedilno polje samodejno dokonča, ko vnesete začetno črko v polje.

1. Vstavite besedilno polje s klikom Razvojni > Vstavi > Besedilno polje (nadzor ActiveX). Oglejte si posnetek zaslona:

2. In nato kliknite Razvojni > Vstavi > List List (ActiveX Control) če želite v trenutni delovni list vstaviti polje s seznamom. Oglejte si posnetek zaslona:

3. Z desno miškino tipko kliknite jeziček lista in nato kliknite Ogled kode iz kontekstnega menija, kot je prikazano spodaj.

4. V Ljubljani Microsoft Visual Basic za aplikacije okno, kopirajte in prilepite spodnjo kodo VBA v okno Code. In nato kliknite Orodja > Referencein nato preverite Izvajanje Microsoftovih skriptov polje v Reference - VBAProject pogovorno okno. Oglejte si posnetek zaslona:

Koda VBA: med tipkanjem samodejno dokončajte polje z besedilom

Dim xRg As Range
Dim xDic As New Dictionary
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Me.TextBox1.Value = Me.ListBox1.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xVal As String
    On Error Resume Next
    If IsNumeric(Target.Value) Then
        xVal = Str(Target.Value)
    Else
        xVal = Target.Value
    End If
    If xVal <> "" Then
        If Not xDic.Exists(xVal) Then
            xDic.Add xVal, xVal
        End If
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.ListBox1.Visible = False
End Sub
Private Sub Worksheet_Activate()
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    If xRg Is Nothing Then
        Set xRg = ActiveSheet.UsedRange
    End If
    Me.ListBox1.Visible = False
    xDic.RemoveAll
    With Me.ListBox1
        For I = 1 To xRg.Count
            xStr = xRg(I).Value
            If xStr <> "" Then
                .AddItem xStr
                If Not xDic.Exists(xStr) Then
                    xDic.Add xStr, xStr
                End If
            End If
        Next
    End With
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With Me.ListBox1
        .Top = Me.TextBox1.Top
        .Left = Me.TextBox1.Left + Me.TextBox1.Width
        .Width = Me.TextBox1.Width
    End With
    TextBoxVal Me.TextBox1.Object
End Sub
Sub TextBoxVal(xTextBox As Variant)
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    Application.ScreenUpdating = False
    If xRg Is Nothing Then Exit Sub
    Me.ListBox1.Clear
    xStr = xTextBox.Value
    If xStr = "" Then
        Me.ListBox1.Visible = False
        Application.EnableEvents = True
        Exit Sub
    End If
    For I = 0 To UBound(xDic.Items)
        If Left(xDic.Items(I), Len(xStr)) = xStr Then
            Me.ListBox1.AddItem xDic.Items(I)
        End If
    Next
    Me.ListBox1.Visible = True
    If Me.ListBox1.ListCount > 0 Then
        With xTextBox
            .Value = Me.ListBox1.List(0)
            .SelStart = Len(xStr)
            .SelLength = Len(Me.ListBox1.List(0))
        End With
    End If
    Me.ListBox1.Activate
    Me.ListBox1.Selected(0) = True
    Application.ScreenUpdating = True
End Sub
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Me.TextBox1.Value = Me.ListBox1.Value
    End If
End Sub

Opombe: V kodi, ListBox1 in Besedilo1 sta ime seznamskega polja in besedilnega polja, ki ste ga vstavili v svoj delovni list.

5. Pritisnite druga + Q tipke za izhod iz Microsoft Visual Basic za aplikacije okno.

6. Izklopite način oblikovanja s klikom Razvojni > Način oblikovanja v delovnem listu.

7. Zdaj se pomaknite na drug delovni list in se nato vrnite na prejšnji delovni list, da omogočite kodo VBA.

Od zdaj naprej. Ko vnesete začetno črko v besedilno polje, bodo vsa besedila, ki se začnejo s tisto črko, ki ste jo vnesli v delovni list, navedena v polju s seznamom na desni strani besedilnega polja. Dvokliknite želenega, da ga vnesete v besedilno polje. Oglejte si posnetek zaslona:

Opombe: Lahko uporabite Up or navzdol puščično tipko za premikanje med vsemi besedili s samodokončanjem v seznamskem polju in nato pritisnite Vnesite tipko, da jo vnesete v besedilno polje.


Sorodni članki:

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 (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Why would anyone go for writing a script when there are simpler ways to get a dropdown list???
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations