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; Filtruj pogrubieniem, formułami, komentarzem ...
- Ponad 300 zaawansowanych funkcji; Współpracuje z Office 2007-2021 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 Narzędzia > Referencje, a następnie sprawdź Środowisko wykonawcze skryptów firmy Microsoft Microsoft 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 Pole listy1 i 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 Wchodzę 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-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 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ęć myszką każdego dnia!
