Como autocompletar uma caixa de texto ao digitar no Excel?
Por padrão, o Excel pode lembrar o que você inseriu nas células da planilha atual e preencher automaticamente esse conteúdo na próxima vez ao digitar uma letra inicial relacionada em uma nova célula. No entanto, se você deseja fazer com que todos os conteúdos inseridos na planilha sejam preenchidos automaticamente em uma caixa de texto (Controle ActiveX), como você faria? Este artigo fornecerá um método VBA para ajudá-lo a preencher automaticamente uma caixa de texto ao digitar uma letra inicial dentro dela.
Preencher automaticamente uma caixa de texto ao digitar com o código VBA
- Reutilizar qualquer coisa: Adicione as fórmulas, gráficos e tudo mais usados ou complexos aos seus favoritos e reutilize-os rapidamente no futuro.
- Mais de 20 recursos de texto: Extrair número da string de texto; Extraia ou remova parte dos textos; Converta números e moedas para palavras em inglês.
- Ferramentas de mesclagem: Várias pastas de trabalho e planilhas em um; Mesclar várias células / linhas / colunas sem perder dados; Mesclar linhas duplicadas e soma.
- Ferramentas de divisão: Divida os dados em várias folhas com base no valor; Uma pasta de trabalho para vários arquivos do Excel, PDF ou CSV; Uma coluna para várias colunas.
- Paste Skipping Linhas ocultas / filtradas; Contagem e soma por cor de fundo; Envie emails personalizados para vários destinatários em massa.
- Super Filtro: Crie esquemas de filtro avançados e aplique a qualquer planilha; tipo por semana, dia, frequência e muito mais; filtros por negrito, fórmulas, comentário ...
- Mais de 300 recursos poderosos; Funciona com Office 2007-2019 e 365; Suporta todos os idiomas; Fácil implantação em sua empresa ou organização.
Preencher automaticamente uma caixa de texto ao digitar com o código VBA

Faça o seguinte para preencher automaticamente uma caixa de texto ao digitar uma letra inicial dentro da caixa de texto.
1. Insira uma caixa de texto clicando em Desenvolvedor > inserção > Caixa de texto (controle ActiveX). Veja a imagem:
2. E então clique Desenvolvedor > inserção > Caixa de listagem (controle ActiveX) para inserir uma caixa de listagem na planilha atual. Veja a imagem:
3. Clique com o botão direito do mouse na guia da planilha e clique em Ver código no menu de contexto, conforme a imagem mostrada abaixo.
4. No Microsoft Visual Basic para Aplicações janela, copie e cole o código VBA abaixo na janela Código. E então clique Ferramentas > Referências, e depois verifique o Microsoft Scripting Runtime caixa no Referências - VBAProject caixa de diálogo. Veja a imagem:
Código VBA: preencher automaticamente uma caixa de texto ao digitar
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
Importante: No código, ListBox1 e Caixa de Texto 1 são o nome da caixa de listagem e da caixa de texto que você inseriu na planilha.
5. aperte o outro + Q chaves para sair do Microsoft Visual Basic para Aplicações janela.
6. Desative o modo de design clicando em Desenvolvedor > Modo de design na planilha.
7. Agora mude para outra planilha e volte para a planilha anterior para habilitar o código VBA.
De agora em diante. Ao inserir uma letra inicial na caixa de texto, todos os textos que começam com aquela letra que você inseriu na planilha serão listados dentro da caixa de listagem localizada no lado direito da caixa de texto. Clique duas vezes no seu necessário para inseri-lo na caixa de texto. Veja a imagem:
Importante: Você pode usar o Up or Para baixo tecla de seta para mover entre todos os textos de preenchimento automático na caixa de lista e, em seguida, pressione o entrar para inserir o necessário na caixa de texto.
Artigos relacionados:
- Como selecionar automaticamente o texto de uma caixa de texto quando ela é selecionada no Excel?
- Como limpar o conteúdo da caixa de texto quando clicado no Excel?
- Como concatenar textos de várias células em uma caixa de texto no Excel?
- Como desabilitar a edição na caixa de texto para evitar a entrada do usuário no Excel?
- Como formatar uma caixa de texto como porcentagem no Excel?
As melhores ferramentas de produtividade para escritório
O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%
- armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
- Super Formula Bar (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
- Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
- Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
- Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
- Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
- Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
- Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
- Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil
- Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
- Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
