Làm cách nào để tự động hoàn thành hộp văn bản khi nhập trong Excel?
Theo mặc định, Excel có thể nhớ những gì bạn đã nhập vào các ô của trang tính hiện tại và tự động điền nội dung này vào lần tiếp theo khi nhập một chữ cái đầu tiên có liên quan vào một ô mới. Tuy nhiên, nếu bạn muốn làm cho tất cả nội dung bạn đã nhập trong trang tính được tự động hoàn thành trong hộp văn bản (Điều khiển ActiveX), bạn có thể làm như thế nào? Bài viết này sẽ cung cấp một phương pháp VBA để giúp bạn tự động hoàn thành hộp văn bản khi nhập một ký tự đầu tiên bên trong.
Tự động hoàn thành hộp văn bản khi nhập bằng mã VBA
Tự động hoàn thành hộp văn bản khi nhập bằng mã VBA
Vui lòng làm như sau để làm cho hộp văn bản tự động hoàn thành khi nhập một ký tự đầu tiên bên trong hộp văn bản.
1. Vui lòng chèn một hộp văn bản bằng cách nhấp vào Nhà phát triển > Chèn > Hộp văn bản (Điều khiển ActiveX). Xem ảnh chụp màn hình:
2. Và sau đó nhấp vào Nhà phát triển > Chèn > Hộp danh sách (Điều khiển ActiveX) để chèn một hộp danh sách vào trang tính hiện tại. Xem ảnh chụp màn hình:
3. Bấm chuột phải vào tab trang tính, sau đó bấm Mã Chế độ xem từ menu ngữ cảnh như ảnh chụp màn hình bên dưới.
4. bên trong Microsoft Visual Basic cho các ứng dụng , vui lòng sao chép và dán mã VBA bên dưới vào cửa sổ Mã. Và sau đó nhấp vào CÔNG CỤ > dự án, và sau đó kiểm tra Thời gian chạy tập lệnh của Microsoft hộp trong Tài liệu tham khảo - VBAProject hộp thoại. Xem ảnh chụp màn hình:
Mã VBA: Tự động hoàn thành hộp văn bản khi nhập
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
Chú thích: Trong mã, Danh sáchBox1 và Hộp văn bản1 là tên của hộp danh sách và hộp văn bản bạn đã chèn vào trang tính của mình.
5. Nhấn nút Khác + Q chìa khóa để thoát khỏi Microsoft Visual Basic cho các ứng dụng cửa sổ.
6. Tắt Chế độ thiết kế bằng cách nhấp vào Nhà phát triển > Chế độ thiết kế trong trang tính.
7. Bây giờ chuyển sang một trang tính khác và sau đó quay lại trang tính trước đó để bật mã VBA.
Từ giờ trở đi. Khi nhập một chữ cái đầu tiên vào hộp văn bản, tất cả các văn bản bắt đầu bằng chữ cái mà bạn đã nhập vào trang tính sẽ được liệt kê bên trong hộp danh sách nằm ở phía bên phải của hộp văn bản. Vui lòng nhấp đúp vào cái cần thiết của bạn để nhập nó vào hộp văn bản. Xem ảnh chụp màn hình:
Chú thích: Bạn có thể dùng Up or xuống phím mũi tên để di chuyển giữa tất cả các văn bản tự động hoàn thành trong hộp danh sách, sau đó nhấn đăng ký hạng mục thi để nhập một phím cần thiết vào hộp văn bản.
Các bài liên quan:
- Làm cách nào để tự động chọn văn bản của hộp văn bản khi nó được chọn trong Excel?
- Làm thế nào để xóa nội dung của hộp văn bản khi được nhấp vào trong Excel?
- Làm cách nào để nối văn bản của nhiều ô vào một hộp văn bản trong Excel?
- Làm cách nào để tắt tính năng chỉnh sửa trong hộp văn bản để ngăn người dùng nhập vào Excel?
- Làm thế nào để định dạng một hộp văn bản dưới dạng phần trăm trong Excel?
Công cụ năng suất văn phòng tốt nhất
Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian. Bấm vào đây để có được tính năng bạn cần nhất...
Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều
- Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
- Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
- Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!