Jak automatycznie uzupełniać pole tekstowe podczas pisania w programie Excel?
Domyślnie program Excel może zapamiętać, co wprowadziłeś w komórkach bieżącego arkusza roboczego i automatycznie uzupełnić tę zawartość następnym razem, gdy wpisujesz powiązaną pierwszą literę w nowej komórce. Jeśli jednak chcesz, aby cała zawartość wprowadzona w arkuszu była automatycznie uzupełniana w polu tekstowym (formant ActiveX), jak możesz to zrobić? W tym artykule znajdziesz metodę VBA, która pomoże Ci automatycznie uzupełnić pole tekstowe podczas wpisywania pierwszej litery w środku.
Autouzupełnianie pola tekstowego podczas pisania za pomocą kodu VBA
- Wykorzystaj wszystko ponownie: Dodaj najczęściej używane lub złożone formuły, wykresy i wszystko inne do ulubionych i szybko wykorzystaj je ponownie w przyszłości.
- Ponad 20 funkcji tekstowych: Wyodrębnij liczbę z ciągu tekstowego; Wyodrębnij lub usuń część tekstów; Konwertuj liczby i waluty na angielskie słowa.
- Narzędzia do scalania: Wiele skoroszytów i arkuszy w jeden; Scal wiele komórek / wierszy / kolumn bez utraty danych; Połącz zduplikowane wiersze i sumę.
- Podziel narzędzia: Podziel dane na wiele arkuszy na podstawie wartości; Jeden skoroszyt do wielu plików Excel, PDF lub CSV; Jedna kolumna na wiele kolumn.
- Wklej pomijanie Ukryte / filtrowane wiersze; Policz i suma według koloru tła; Wysyłaj spersonalizowane wiadomości e-mail do wielu odbiorców zbiorczo.
- Super filtr: Twórz zaawansowane schematy filtrów i stosuj do dowolnych arkuszy; Sortuj według tygodnia, dnia, częstotliwości i nie tylko; Filtr pogrubieniem, formułami, komentarzem ...
- Ponad 300 zaawansowanych funkcji; Działa z Office 2007-2019 i 365; Obsługuje wszystkie języki; Łatwe wdrażanie w przedsiębiorstwie lub organizacji.
Autouzupełnianie pola tekstowego podczas pisania za pomocą kodu VBA

Wykonaj następujące czynności, aby pole tekstowe było uzupełniane automatycznie podczas wpisywania pierwszej litery w polu tekstowym.
1. Wstaw pole tekstowe, klikając Deweloper > wstawka > Pole tekstowe (formant ActiveX). Zobacz zrzut ekranu:
2. A następnie kliknij Deweloper > wstawka > Pole listy (formant ActiveX) aby wstawić pole listy do bieżącego arkusza roboczego. Zobacz zrzut ekranu:
3. Kliknij kartę arkusza prawym przyciskiem myszy, a następnie kliknij Wyświetl kod z menu kontekstowego, jak pokazano poniżej.
4. w Microsoft Visual Basic for Applications należy skopiować i wkleić poniższy kod VBA do okna Kod. A następnie kliknij Przybory i narzędzia > Referencje, a następnie sprawdź Microsoft Scripting Runtime Okno w Referencje - VBAProject Okno dialogowe. Zobacz zrzut ekranu:
Kod VBA: autouzupełnianie pola tekstowego podczas pisania
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
Uwagi: W kodzie ListBox1 Pole tekstowe 1 to nazwa pola listy i pola tekstowego wstawionego do arkusza.
5. wciśnij inny + Q klawisze, aby wyjść z Microsoft Visual Basic for Applications okno.
6. Wyłącz tryb projektowania, klikając Deweloper > Tryb projektowania w arkuszu.
7. Teraz przejdź do innego arkusza, a następnie wróć do poprzedniego arkusza, aby włączyć kod VBA.
Od teraz. Podczas wpisywania pierwszej litery w polu tekstowym, wszystkie teksty zaczynające się na tę literę, którą wprowadziłeś do arkusza, zostaną wyświetlone w polu listy, które znajduje się po prawej stronie pola tekstowego. Kliknij dwukrotnie potrzebny, aby wprowadzić go w polu tekstowym. Zobacz zrzut ekranu:
Uwagi: Możesz użyć Up or W dół klawisz strzałki, aby poruszać się między wszystkimi tekstami autouzupełniania w polu listy, a następnie naciśnij klawisz wchodzić klawisz, aby wprowadzić potrzebny numer w polu tekstowym.
Podobne artykuły:
- Jak automatycznie zaznaczyć tekst pola tekstowego, gdy jest on wybrany w programie Excel?
- Jak wyczyścić zawartość pola tekstowego po kliknięciu w programie Excel?
- Jak połączyć teksty wielu komórek w pole tekstowe w programie Excel?
- Jak wyłączyć edycję w polu tekstowym, aby uniemożliwić wprowadzanie danych przez użytkownika w programie Excel?
- Jak sformatować pole tekstowe jako procent w programie Excel?
Najlepsze narzędzia biurowe
Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%
- Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
- Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
- Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
- Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
- Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
- Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
- Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
- Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
- Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2019 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowy bezpłatny okres próbny. 60-dniowa gwarancja zwrotu pieniędzy.

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszą każdego dnia!
