Namig: drugi jeziki so prevedeni v Google. Lahko obiščete English različico te povezave.
Vpiši se
x
or
x
x
Registracija
x

or

Kako dokončati tekstovni okvir pri vnašanju v Excelu?

Excel se lahko privzeto zapomni, kaj ste vnesli v celice trenutnega delovnega lista, in naslednjič, ko vnesete povezano začetno črko v novo celico, jo samodejno dokončajte. Če pa želite, da se vsa vsebina, ki ste jo vnesli na delovnem listu, v besedilnem polju (kontrolnik ActiveX) samodokončajo, kako lahko storite? V tem članku boste našli metodo VBA, ki vam bo pomagal pri samodejni dokončanju besedilnega polja pri vnašanju začetne črke znotraj.

Samodokončanje besedilnega polja pri vnašanju s kodo VBA


Samodokončanje besedilnega polja pri vnašanju s kodo VBA


Če v besedilnem polju vtipkate začetno črko, naredite kot sledi, da naredite samodokončanost besedila.

1. Prosimo, vstavite besedilni polju tako, da kliknete Razvojni > Vstavi > Text Box (nadzor ActiveX). Prikaz slike:

2. In nato kliknite Razvojni > Vstavi > Seznam oken (nadzor ActiveX) vstavite seznamsko polje na trenutni delovni list. Prikaz slike:

3. Z desno miškino tipko kliknite zavihek stanja, nato kliknite Ogled kode iz kontekstnega menija, kot je prikazano spodaj.

4. V Ljubljani Microsoft Visual Basic za aplikacije okno, kopirajte in prilepite pod kodo VBA v okno Code. In nato kliknite Orodja > Reference, nato pa preverite Microsoft Scripting Runtime polje v Reference - VBAProjekt pogovorno okno. Prikaz slike:

VBA koda: Samodejno dokončajte besedilni okvir pri tipkanju

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 Textbox1 so ime seznama in polja, ki ste jih vstavili v svoj delovni list.

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

6. Izklopite način oblikovanja tako, da kliknete Razvojni > Način oblikovanja v delovnem listu.

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

Od zdaj naprej. Ko vnesete začetno črko v polje z besedilom, se vsa besedila, ki se začnejo s to črko, ki ste jo vnesli v delovni list, navedejo v seznamskem polju, ki se nahaja na desni strani besedilnega polja. Prosimo, dvakrat kliknite svoj potrebni, da ga vnesete v polje z besedilom. Prikaz slike:

Opombe: Lahko uporabite Up or navzdol tipko s puščico, da se premaknete med besedila samodokončanja v seznamu in nato pritisnite Vnesite ključ, da vnesete želeno v polje z besedilom.


Sorodni članki:



Priporočena orodja za produktivnost za Excel

Kutools za Excel vam pomaga, da vedno končate delo pred časom in izstopite iz množice

  • Več kot zmogljive napredne funkcije 300, zasnovane za 1500 delovne scenarije, ki povečujejo produktivnost z 70%, vam dajejo več časa za skrb za družino in uživanje v življenju.
  • Ne potrebujete več pomnilniških formul in VBA kod, od zdaj naprej pa dajate svojim možganom počitek.
  • Postanite strokovnjak za Excel v minutah 3, zapletene in ponavljajoče se operacije lahko opravite v nekaj sekundah,
  • Vsak dan zmanjšajte število operacij tipkovnice in miške, zdaj se poslovite od poklicnih bolezni.
  • 110,000 visoko učinkovite ljudi in 300 + svetovno priznanih podjetij izbiro.
  • Brezplačna preizkusna različica 60 dneva. 60-dnevno jamstvo vračila denarja. 2 let brezplačne nadgradnje in podpore.

Prinaša kartično brskanje in urejanje za Microsoft Office, veliko močnejši od zavihkov brskalnika

  • Office Tab je namenjen za Word, Excel, PowerPoint in druge Office aplikacije: Založnik, Dostop, Visio in Projekt.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Z 50% poveča vašo produktivnost in vsak dan zmanjša na stotine klikov z miško!
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.
    suprio · 1 years ago
    Why would anyone go for writing a script when there are simpler ways to get a dropdown list???