Cách Tạo Hộp Tìm Kiếm Siêu Tốc Bằng VBA Excel

Sau đây mình sẽ hướng dẫn các bạn cách tạo hộp tìm kiếm siêu tốc trong Excel bằng VBA. Trong quá trình làm việc các bạn thường gặp phải trường hợp cần tìm kiếm dữ liệu trong một bảng Excel, Word hay một bảng dữ liệu nào đó… Các bạn thường được sử dụng công cụ là filter để tìm kiếm dữ liệu, cách này mặc dù sẽ tìm được nhưng sẽ mất thời gian để filter lại khi tìm dữ liệu mới. Tuy nhiên với hộp tìm kiếm bạn chỉ cần nhập vào dữ liệu là có thể tìm được tương tự như thanh tìm kiếm của google. Các bạn cùng mình tìm hiểu nhé !!!

Định dạng dữ liệu / Data format

Mình sẽ gửi các bạn một file Excel để có thể vừa xem bài viết vừa thực hành nhé, ấn vào link bên dưới

https://drive.google.com/file/d/1RXIq14diqXpPUW3tQIz_K4p0yGQHd-fY/view?usp=sharing

Sau khi đã tải xuống file thực hành, điều cần làm đầu tiên là tạo table cho dữ liệu. Cách làm là chọn vào một ô bất kỳ trên vùng dữ liệu, sau đó ấn Ctrl + T. Sẽ xuất hiện bảng Create Table sau khi ấn, bạn nhớ chọn vào My table has headers nhé. Hoàn tất chọn OK.

Bạn có thể đổi tên của table tại thẻ Design, sau đó chọn vào mục Table Name để đổi tên (tham khảo hình dưới).

Thực hiện việc gõ vào một ô để thể hiện chức năng tìm kiếm, ví dụ mình sẽ nhập vào là “TÌM KIẾM”.

Chúng ta sẽ cần thẻ Developer để thực hiện công việc tiếp theo. Bạn nào chưa có thẻ Developer thì có thể click chuột phải vào vị trí bất kỳ trên thanh Ribbon, sau đó chọn vào Customize the Ribbon.

Tại cửa sổ Excel Options bạn sẽ tích chọn vào Developer nếu chưa tích nhé, hoàn tất chọn OK.

Kế tiếp bạn sẽ truy cập vào thẻ Developer → chọn Insert → tại ActiveX Controls chọn vào mục Textbox. Thực hiện vẽ Textbox với chiều dài khoảng 2 ô trong Excel.

Khi đã có được Textbox bạn sẽ chọn vào nó và click chuột phải, cuối cùng chọn vào Properties.

 

Tại cửa sổ Properties chúng ta sẽ thực hiện liên kết textbox với một ô trên Excel bằng cách điền tên ô vào phần LinkedCell, mình sẽ chọn ô B2 để liên kết nên sẽ điền là B2 (tham khảo hình). Sau khi đã liên kết xong các bạn nhớ đóng lại cửa sổ Properties.

Tiếp tục chọn vào Textbox và click chuột phải chọn View Code, đây là bước để chúng ta chuẩn bị cửa sổ code phục vụ cho công đoạn sau.

Sẽ xuất hiện cửa sổ Microsoft Visual Basic for Applications để bạn có thể code cho Textbox. Do đây chỉ là bước chuẩn bị nên sau khi mở lên bạn hãy tạm tắt nó xuống nhé (chọn vào dấu -).

Tạo hộp tìm kiếm / Create search box

Việc tạo code cho hộp tìm kiếm khá phức tạp nên chúng ta sẽ sử dụng công cụ Record Macro, đây là công cụ sẽ giúp cho những bạn không biết code vẫn có thể làm được hộp tìm kiếm.

Đầu tiên truy cập vào thẻ Developer → chọn Record Macro. Sẽ hiện lên cửa sổ Record Macro khi chọn vào, bạn nên để tên mặc định là “Macro1” cho dễ nhận biết. Hoàn tất chọn OK.

Những bước tiếp theo bạn cần làm theo chính xác những gì mình hướng dẫn để không phát sinh lỗi sau này. Trước tiên chọn vào biểu tượng filter của “Nhà Phân Phối”, sau đó chọn tiếp Text Filters, cuối cùng là chọn vào Contains.

Tại cửa sổ Custom AutoFilter, bạn sẽ nhập vào một ký tự trong chuỗi cần tìm kiếm (ví dụ là “v”). Contains sẽ lấy ký tự bất kỳ trong chuỗi để lọc ra kết quả tìm kiếm chính xác nhất. Hoàn tất chọn OK.

Tiếp tục chọn vào biểu tượng filter của “Nhà Phân Phối”, chọn vào Search và nhập vào ký tự lúc nảy tức là “v”. Hoàn tất chọn OK.

Kết thúc việc ghi lại bằng cách chọn vào thẻ Developer và chọn Stop Recording.

Xem code của các bước vừa ghi lại tại Visual Basic cũng nằm trong thẻ Developer. Do lúc nảy chúng ta để tên là “Macro1” nên bạn chọn vào Modules → chọn tiếp Module1 sẽ thấy code.

Thực hiện copy (Ctrl + C) toàn bộ code vừa ghi được sang cửa sổ code đã được bật lúc nảy (sẽ là sheet1 nếu bạn chưa đặt tên sheet).

Chúng ta sẽ loại bỏ những đoạn code không cần thiết và viết thêm một vài điều kiện để hộp tìm kiếm hoạt động tốt nhất có thể.

Code mẫu:

Đoạn code trên có ba điểm bạn cần lưu ý.

Thứ nhất chính là ô B2, do vừa nãy mình đã lựa chọn liên kết ô B2 với textbox nên tại đây sẽ là B2.

Thứ hai, là đoạn code điều kiện If là nhập tay vào nên bạn sẽ không thể thấy trong đoạn code ban đầu. Đây là đoạn code sẽ thực hiện chức năng khi bạn xóa ký tự trong hộp tìm kiếm thì các filter đã lọc sẽ được reset lại ban đầu. Đoạn code này bạn có thể không code theo mình cũng được, sẽ không ảnh hưởng quá nhiều đến hộp tìm kiếm đâu nhé.

Thứ ba chính là “Bang1”, đây là tên của table bạn đặt lúc ban đầu. Cần phải đúng tên table thì code mới không xảy ra lỗi được.

Bạn sẽ tắt chức năng Design Mode ở thẻ Developer để hoàn tất việc điều chỉnh nhé. Sau khi tắt bạn đã có thể tìm kiếm dữ liệu giống như google được rồi đấy.

Xong rồi đấy các bạn ! mình đã hoàn thành bài hướng dẫn cách tạo hộp tìm trong Excel bằng VBA. Nó là một chức năng rất tiện ích khi bạn đang sở hữu một dữ liệu khổng lồ. Sẽ giúp các bạn tiết kiệm rất nhiều thời gian để tìm kiếm các dữ liệu cần thiết. Để muốn học thêm các bài học khác về Excel thì đừng ngại tìm kiếm trên website này nhé.

 

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *