Lưu ý: Các ngôn ngữ khác của trang web đều do Google dịch. Quay lại tiếng Anh
Đăng nhập  \/ 
x
or
x
Đăng ký  \/ 
x

or

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

Tab Office Cho phép Chỉnh sửa và Duyệt theo Tab trong Office, và Giúp Công việc của Bạn Dễ dàng hơn Nhiều ...
Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn
  • Tái sử dụng mọi thứ: Thêm các công thức, biểu đồ và bất kỳ thứ gì khác được sử dụng nhiều nhất hoặc phức tạp vào mục yêu thích của bạn và nhanh chóng sử dụng lại chúng trong tương lai.
  • Hơn 20 tính năng văn bản: Trích xuất số từ chuỗi văn bản; Trích xuất hoặc loại bỏ một phần nội dung; Chuyển đổi số và tiền tệ sang từ tiếng Anh.
  • Công cụ hợp nhất: Nhiều Workbook và Sheets thành một; Hợp nhất nhiều ô / hàng / cột mà không làm mất dữ liệu; Hợp nhất các hàng và tổng trùng lặp.
  • Công cụ tách: Chia Dữ liệu thành Nhiều Trang tính Dựa trên Giá trị; Một sổ làm việc cho nhiều tệp Excel, PDF hoặc CSV; Một cột đến nhiều cột.
  • Dán bỏ qua Hàng ẩn / được lọc; Đếm và tổng theo Màu nền; Gửi hàng loạt email được cá nhân hóa cho nhiều người nhận.
  • Bộ lọc siêu: Tạo lược đồ lọc nâng cao và áp dụng cho bất kỳ trang tính nào; Sắp xếp theo tuần, ngày, tần suất và hơn thế nữa; Lọc bằng cách in đậm, công thức, chú thích ...
  • Hơn 300 tính năng mạnh mẽ; Hoạt động với Office 2007-2019 và 365; Hỗ trợ tất cả các ngôn ngữ; Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn.

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 Microsoft Scripting Runtime 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ã, ListBox1Hộ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 Đi vào để 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:


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Super Formula Bar (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọc...
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãy...
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xét...
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDF...
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2019 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ các tính năng dùng thử miễn phí 30 ngày. Đảm bảo hoàn tiền trong 60 ngày.
tab kte 201905

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!
officetab dưới cùng
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    suprio · 2 years ago
    Why would anyone go for writing a script when there are simpler ways to get a dropdown list???