Bagaimana cara melengkapi kotak teks secara otomatis saat mengetik di Excel?
Secara default, Excel dapat mengingat apa yang telah Anda masukkan ke dalam sel lembar kerja saat ini dan melengkapi otomatis konten ini di lain waktu saat mengetik surat awal terkait ke dalam sel baru. Namun, jika Anda ingin membuat semua konten yang telah Anda masukkan di lembar kerja menjadi pelengkapan otomatis di kotak teks (Kontrol ActiveX), bagaimana Anda bisa melakukannya? Artikel ini akan memberikan metode VBA untuk membantu Anda melengkapi kotak teks secara otomatis saat mengetik huruf awal di dalamnya.
Lengkapi otomatis kotak teks saat mengetik dengan kode VBA
Lengkapi otomatis kotak teks saat mengetik dengan kode VBA
Lakukan hal berikut untuk membuat pelengkapan otomatis kotak teks saat mengetik huruf awal di dalam kotak teks.
1. Harap masukkan kotak teks dengan mengklik Pengembang > Menyisipkan > Kotak Teks (Kontrol ActiveX). Lihat tangkapan layar:
2. Dan kemudian klik Pengembang > Menyisipkan > Kotak Daftar (Kontrol ActiveX) untuk memasukkan kotak daftar ke dalam lembar kerja saat ini. Lihat tangkapan layar:
3. Klik kanan tab lembar, lalu klik Lihat kode dari menu konteks seperti gambar di bawah ini yang ditampilkan.
4. Dalam Microsoft Visual Basic untuk Aplikasi jendela, silakan salin dan tempel kode VBA di bawah ini ke jendela Kode. Dan kemudian klik Tools > Referensi, lalu periksa Runtime Microsoft Scripting kotak di Referensi - VBAProject kotak dialog. Lihat tangkapan layar:
Kode VBA: Melengkapi kotak teks secara otomatis saat mengetik
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
Note: Di dalam kode, DaftarKotak1 dan Kotak Teks 1 adalah nama kotak daftar dan kotak teks yang telah Anda sisipkan ke dalam lembar kerja Anda.
5. tekan lain + Q kunci untuk keluar dari Microsoft Visual Basic untuk Aplikasi jendela.
6. Matikan Mode Desain dengan mengklik Pengembang > Mode Desain di lembar kerja.
7. Sekarang pindah ke lembar kerja lain dan kemudian kembali ke lembar kerja sebelumnya untuk mengaktifkan kode VBA.
Dari sekarang. Saat memasukkan huruf awal ke dalam kotak teks, semua teks yang dimulai dengan huruf yang Anda masukkan ke dalam lembar kerja akan terdaftar di dalam kotak daftar yang terletak di sisi kanan kotak teks. Silakan klik dua kali yang Anda butuhkan untuk memasukkannya ke dalam kotak teks. Lihat tangkapan layar:
Note: Anda bisa menggunakan Up or Turun tombol panah untuk berpindah di antara semua teks pelengkapan otomatis dalam kotak daftar, dan kemudian tekan Enter kunci untuk memasukkan yang dibutuhkan ke dalam kotak teks.
Artikel terkait:
- Bagaimana cara memilih teks secara otomatis dari kotak teks saat dipilih di Excel?
- Bagaimana cara menghapus konten kotak teks saat diklik di Excel?
- Bagaimana cara menggabungkan teks dari beberapa sel ke dalam kotak teks di Excel?
- Bagaimana cara menonaktifkan pengeditan di kotak teks untuk mencegah pengguna memasukkan di Excel?
- Bagaimana cara memformat kotak teks sebagai persentase di Excel?
Alat Produktivitas Kantor Terbaik
Tingkatkan Keterampilan Excel Anda dengan Kutools for Excel, dan Rasakan Efisiensi yang Belum Pernah Ada Sebelumnya. Kutools for Excel Menawarkan Lebih dari 300 Fitur Lanjutan untuk Meningkatkan Produktivitas dan Menghemat Waktu. Klik Di Sini untuk Mendapatkan Fitur yang Paling Anda Butuhkan...
Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah
- Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
- Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
- Meningkatkan produktivitas Anda sebesar 50%, dan mengurangi ratusan klik mouse untuk Anda setiap hari!