Lọc khi bạn nhập trong Excel VBA

Các hướng dẫn này sẽ cho phép bạn tạo hộp tìm kiếm trong Excel để lọc bảng khi bạn nhập. Mỗi chữ cái bạn nhập vào hộp tìm kiếm sẽ tự động được áp dụng cho bộ lọc

Nhấn vào đây để đăng ký khóa học VBA Excel cơ bản
Hơn 30 giờ - bao gồm chứng nhận

Tất cả các giao dịch mua giúp hỗ trợ blog này - cảm ơn

Hướng dẫn đầu tiên sử dụng hàm FILTER có sẵn trong Excel 365. Nếu bạn không có Excel 365, hướng dẫn thứ hai sẽ chỉ cho bạn cách đạt được kết quả tương tự bằng cách sử dụng Visual Basic for Applications (VBA)

Cả hai hướng dẫn đều ở định dạng video với các công thức và mã có liên quan được ghi lại cùng với chúng

Sử dụng chức năng LỌC


Công thức sử dụng trong video.
=FILTER(SalesReps,LEFT(SalesReps[Sales Rep],LEN(E1))=E1,"No names found")

Tải file đặc trưng tại đây

Để biết thêm thông tin về hàm FILTER và các hàm mới có sẵn trong Excel 365 nói chung, vui lòng xem trang Hàm Mảng động mới của chúng tôi

Giả sử bạn có một tập dữ liệu và bạn muốn áp dụng bộ lọc trong Excel với sự trợ giúp của VBA. Để bạn có thể lọc tên và yêu cầu họ lọc tập dữ liệu bên dưới

Ở đây trong bài đăng này, chúng tôi đang sử dụng bộ dữ liệu bên dưới

Lọc khi bạn nhập trong Excel VBA
Lọc dữ liệu khi bạn nhập Image_01

Hãy lọc cột “Vùng” trong bảng này

Chúng tôi sẽ tạo một 'Hộp văn bản' trong ô “A1”, nơi chúng tôi sẽ tạo bộ lọc và chúng tôi sẽ lọc dữ liệu của mình trong cột “Khu vực”

Áp dụng Lọc dữ liệu khi bạn nhập trong Excel VBA

Vì vậy, trước hết, chúng tôi sẽ chuyển đổi tập dữ liệu này thành một bảng. Dễ dàng làm việc với dữ liệu bảng với VBA

Để chuyển đổi dữ liệu thành bảng, trước tiên hãy chọn tất cả các bộ dữ liệu

Và nhấn phím tắt CTRL + T để chuyển đổi dữ liệu thành bảng

Lọc khi bạn nhập trong Excel VBA
Lọc dữ liệu khi bạn nhập Image_02

Và nhấn Ok

Xem bên dưới dữ liệu của bạn được chuyển đổi thành bảng ngay bây giờ

Sau khi dữ liệu của bạn được chuyển đổi thành bảng, hãy xem tab 'Thiết kế' được thêm tự động và bạn có thể thấy bảng mặc định ở phía bên trái là 'Bảng 1'

Lọc khi bạn nhập trong Excel VBA
Lọc dữ liệu khi bạn nhập Image_03

Bây giờ hãy thay đổi tên bảng của bạn bằng cách chỉnh sửa “Table1” thành “NewData” và nhấn Enter. Tên bảng dữ liệu của chúng tôi bây giờ là “NewData”

Bây giờ, hãy chuyển đến tab 'Nhà phát triển' và sau đó nhấp vào trình đơn thả xuống "Chèn"

Chuyển đến hộp điều khiển ‘Active X Controls’ và nhấp vào công cụ TextBox để tạo hộp văn bản trong Excel

Lọc khi bạn nhập trong Excel VBA

Một TextBox được chèn vào trang tính Excel và bạn có thể định vị nó ở bất kỳ đâu cho đến khi nó ở chế độ thiết kế

Lọc khi bạn nhập trong Excel VBA

Chúng tôi sẽ sử dụng hộp văn bản này để áp dụng bộ lọc của tập dữ liệu của chúng tôi

Bây giờ chúng ta cần liên kết hộp văn bản này với bất kỳ ô nào, vì vậy ở đây chúng ta sẽ liên kết hộp này với ô “A1” trong trang tính Excel của chúng ta

Để liên kết hộp văn bản này, chỉ cần nhấp đúp vào 'Hộp văn bản'

Và tìm tùy chọn “LinkedCell” trong cửa sổ thuộc tính textBox1

Lọc khi bạn nhập trong Excel VBA

Nhập 'A1' vào ô tiếp theo để liên kết nó

Và đóng cửa sổ này ngay bây giờ

Bây giờ hãy vào TextBox và xóa chế độ thiết kế bằng cách nhấp vào tab thiết kế

TextBox sẽ hoạt động khi chúng ta xóa chế độ thiết kế khỏi nó

Chọn hộp văn bản bằng cách nhấp vào nó và nhấp vào nút chế độ thiết kế xuất hiện trong dải băng

Lọc khi bạn nhập trong Excel VBA
Lọc dữ liệu khi bạn nhập

Bạn có thể viết bất cứ thứ gì trên TextBox này sau khi nó được xóa khỏi chế độ thiết kế và bạn cũng sẽ thấy văn bản tương tự xuất hiện trên ô được liên kết “A1”

Xem hình ảnh bên dưới. -

Lọc khi bạn nhập trong Excel VBA

Xem rằng văn bản chúng tôi đã nhập trong 'Hộp văn bản' cũng được nhập tự động vào ô được liên kết 'A1'

Bây giờ, hãy quay lại chế độ thiết kế và đặt hộp văn bản này vào vị trí của ô 'A1'

Lọc khi bạn nhập trong Excel VBA

Xem hình trên

Nhấp đúp vào hộp văn bản một lần nữa trong cùng một chế độ thiết kế để viết mã VBA để áp dụng các bộ lọc cho nó

Khi bạn nhấp đúp chuột vào Hộp văn bản, bạn sẽ nhận được cửa sổ mã VBA bên dưới

Lọc khi bạn nhập trong Excel VBA
Lọc dữ liệu khi bạn nhập

Thấy rằng hai dòng đã được viết

Và giữa hai dòng này, hãy viết mã VBA bên dưới để áp dụng bộ lọc bộ dữ liệu

Lọc khi bạn nhập trong Excel VBA
Lọc dữ liệu khi bạn nhập

Hãy cố gắng hiểu mã VBA này

Bảng hoạt động. ListObjects(“Dữ liệu mới”). Phạm vi. Bộ lọc tự động - đây là đối tượng bảng của chúng tôi, được đặt tên là 'NewData'

Đồng ruộng. =2 – đây là số cột mà chúng tôi muốn áp dụng bộ lọc

tiêu chí1. = [A1] & “*” – Đây là tiêu chí hoặc điều kiện sẽ lọc trong tập dữ liệu. (giá trị trong ô 'A1' sẽ được lọc)

Nhà điều hành. =xlFilterValues ​​ –  đây là một tham số khác để áp dụng bộ lọc

Hộp văn bản phụ riêng tư1_Change()
Ứng dụng. Đang cập nhật màn hình = Sai
 
Bảng hoạt động. ListObjects(“Dữ liệu mới”). Phạm vi. Trường bộ lọc tự động. =2, _
tiêu chí1. =[A1] & “*”, Toán tử. =xlFilterValues
 
Ứng dụng. Đang cập nhật màn hình = True
kết thúc phụ

Khi bạn viết mã VBA này vào hộp văn bản

Bây giờ hãy chạy mã VBA này bằng cách nhấn 'F5' hoặc nhấn vào nút 'Chạy' trên dải băng VBA

Khi mã này được chạy, hãy đóng cửa sổ VBA này lại, sau đó nhấp lại vào tab Chế độ thiết kế để xóa chế độ thiết kế khỏi hộp văn bản