KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come attivare il completamento automatico in una casella di testo mentre si digita in Excel?

AutoreSiluvia Data di modifica

Per impostazione predefinita, Excel ricorda ciò che hai inserito nelle celle del foglio di lavoro corrente e completa automaticamente il contenuto la volta successiva quando digiti una lettera iniziale corrispondente in una nuova cella. Tuttavia, se desideri che tutti i contenuti inseriti nel foglio di lavoro vengano completati automaticamente anche in una casella di testo (controllo ActiveX), come puoi fare? Questo articolo presenta un metodo VBA per abilitare il completamento automatico in una casella di testo durante la digitazione di una lettera iniziale.

Completamento automatico di una casella di testo durante la digitazione con codice VBA


Completamento automatico di una casella di testo durante la digitazione con codice VBA

Segui questi semplici passaggi per attivare il completamento automatico in una casella di testo non appena digiti una lettera iniziale.

1. Inserisci una casella di testo facendo clic su Sviluppo > Inserisci > Casella di testo (controllo ActiveX). Vedi screenshot:

clicca per inserire una casella di testo

2. Quindi fai clic su Sviluppo > Inserisci > Casella elenco (controllo ActiveX) per inserire una casella elenco nel foglio di lavoro corrente. Vedi screenshot:

clicca per inserire una casella elenco

3. Fai clic con il tasto destro sulla scheda del foglio, quindi seleziona Visualizza codice dal menu contestuale, come mostrato nello screenshot seguente.

vai su Visualizza codice dal menu contestuale

4. Nella finestra di Microsoft Visual Basic for Applications, copia e incolla il seguente codice VBA nella finestra del codice. Quindi, fai clic su Strumenti > Riferimenti e seleziona la casella Microsoft Scripting Runtime nella finestra di dialogo Riferimenti – VBAProject. Vedi screenshot:

Codice VBA: Completamento automatico di una casella di testo durante la digitazione

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

vai alla finestra di dialogo Riferimenti e seleziona Microsoft Scripting Runtime

Nota: nel codice, ListBox1 e Textbox1 sono i nomi della casella elenco e della casella di testo inserite nel foglio di lavoro.

5. Premi i tasti Alt+Q per uscire dalla finestra di Microsoft Visual Basic for Applications.

6. Disattiva la modalità progettazione facendo clic su Sviluppo > Modalità progettazione nel foglio di lavoro.

7. Passa ora a un altro foglio di lavoro e torna a quello precedente per attivare il codice VBA.

D’ora in poi, quando inserirai una lettera iniziale nella casella di testo, tutti i testi del foglio di lavoro che iniziano con quella lettera verranno elencati nella casella elenco situata a destra della casella di testo. Fai doppio clic sull’elemento desiderato per inserirlo nella casella di testo. Vedi screenshot:

Quando si digita una lettera iniziale nella casella di testo, verranno elencati tutti i testi che iniziano con quella lettera

Nota: puoi usare i tasti freccia Su o Giù per spostarti tra tutte le opzioni proposte nel completamento automatico dell’elenco, quindi premere il tasto Invio per inserire l’elemento desiderato nella casella di testo.



Articoli correlati:

Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...


Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
  • Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!

Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.

Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.

ExcelWordOutlookTabsPowerPoint
  • Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
  • Funziona meglio insieme— produttività ottimizzata tra le app di Office
  • Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
  • Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi