Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA

Nội dung được viết bởi Như Quỳnh Văn Vũ

Khi làm việc trong Excel bạn thường hay phải lọc, tìm kiếm dữ liệu. Việc này đôi khi khiến bạn mất nhiều thời gian khi phải thao tác thủ công bằng tay. Trong bài viết này, Gitiho sẽ giới thiệu đến các bạn cách tìm kiếm và lọc dữ liệu tự động khi bạn nhập vào một ô trong Excel bằng VBA. Bạn cũng có thể tải file mẫu ở cuối bài viết. Hãy cùng tìm hiểu ngay nào.

Lọc, tìm kiếm dữ liệu tự động bằng Textbox

Ví dụ, bạn có một danh sách bao gồm các tên như sau:
 

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA

Có thể thấy danh sách trên có rất nhiều tên khác nhau. Làm thế nào để chúng ta có thể lọc, tìm nhanh hơn cho cột Tên này?

Bạn hãy thực hiện các bước sau đây:

Bước 1: Đầu tiên, bạn cần đưa vùng danh sách tên về dạng Table trong Excel: chọn toàn bộ danh sách => bấm vào thẻ Insert => chọn mục Table.

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA
 

Bước 2: Khi đó Excle sẽ mở ra hộp thoại Create Table. Bạn hãy chú ý là bảng có chứa dòng tiêu đề hay không, nếu có thì hãy đánh dấu vào mục My table has headers, sau đó bấm OK:

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA
 

Bước 3: Hãy đặt lại tên cho bảng này trong thẻ Table Tools / Design / Table Name như vị trí hình bên dưới:

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA
 

Đặt tên bảng là Name, tương ứng với giá trị trong ô B4

Bước 4: Tiếp theo chúng ta sẽ tạo một Textbox bằng cách bấm vào thẻ Developer => Insert => Text Box (ActiveX Control) để chèn hộp văn bản vào phía trên table list:

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA

Sau đó bạn vẽ textbox ra 1 vị trí trên Sheet

Bước 5: Bấm chuột phải vào Text Box => chọn Properties. Trong cửa sổ Properties => nhập vào hộp LinkedCell là 1 ô bất kỳ bên ngoài bảng (ví dụ như ô F4)

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA
 

Bước 6: Tiếp theo bạn bấm chuột phải vào Text Box => chọn mục View Code. Sau đó bạn hãy thay thế đoạn mã có sẵn bằng mã VBA dưới đây trong cửa sổ Microsoft Visual Basic for Applications:

Private Sub TextBox1_Change()
'Update by Extendoffice 2018/08/22
Dim xStr, xName As String
Dim xWS As Worksheet
Dim xRg As Range
    On Error GoTo Err01
    Application.ScreenUpdating = False
    xName = "Name"
    xStr = TextBox1.Text
    Set xWS = ActiveSheet
    Set xRg = xWS.ListObjects(xName).Range
    If xStr <> "" Then
        xRg.AutoFilter field:=1, Criteria1:="*" & xStr & "*", Operator:=xlFilterValues
    Else
        xRg.AutoFilter field:=1, Operator:=xlFilterValues
    End If
Err01:
Application.ScreenUpdating = True
End Sub

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBAHướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA
 

Lưu ý: Trong đoạn mã này, TextBox1 là tên của hộp văn bản được chèn, Name là tên của danh sách bảng. Bạn có thể thay đổi tên bảng khác theo ý muốn nhưng phải thống nhất về tên bảng với tên trong đoạn code.

Bước 7: Đóng cửa sổ VBA lại.

Bước 8: Tắt chế độ Design Mode bằng cách click vào Developer => Design.

Từ bây giờ, mỗi khi bạn nhập giá trị nào trong Textbox thì tự động danh sách tên sẽ được lọc theo giá trị đó:

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA
 

Trên đây là những hướng dẫn về cách tìm kiếm và lọc dữ liệu sau khi bạn nhập vào một ô trong Excel. Nếu thấy bài viết hay và hữu ích, các bạn hãy chia sẻ với bạn bè của mình nhé. Chúc các bạn thành công!

CÓ THỂ BẠN CŨNG QUAN TÂM:

Hướng dẫn cách lọc dữ liệu còn gọi là filter trong Excel có bài tập đính kèm

Cách xóa dữ liệu trùng lặp bằng Advanced Filter

Hướng dẫn Excel cơ bản về cách dùng bộ lọc Filter – Phần 1

Hướng dẫn cách dùng bộ lọc Filter trong Excel cơ bản – phần 2

Tài liệu kèm theo bài viết

KHÓA HỌC EXCEL ONLINE HOÀN TOÀN MIỄN PHÍ

Khóa học với hơn 14000 HỌC VIÊN đang học và đánh giá trung bình 4.76 SAO

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông