Hướng dẫn cách tạo công cụ tìm kiếm nhanh trong Excel bằng VBA

Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •   

Microsoft Excel hỗ trợ khá nhiều công cụ để giúp cho chúng ta tìm kiếm dữ liệu, có thể nói đến như công Find & Replace (Ctrl + F và Ctrl + H) hay như AutoFilter. Tuy nhiên với mỗi lần cần tìm kiếm chúng ta lại phải mở nó lên và với nhiều thao tác thì chúng ta mới có thể có được kết quả mong muốn. Thế với VBA thì ta có thể tạo ra được 1 chức năng tìm kiếm linh hoạt và nhanh chóng hơn không?. Chúng ta sẽ thực hiện điều đó qua bài viết này của Học Excel Online.

Hướng dẫn cách tạo công cụ tìm kiếm nhanh trong Excel bằng VBA

Để làm được điều đó thì Học Excel Online xin giới thiệu một số cách là sau đây, mời bạn tham khảo:

Đặt vấn đề

Trong công việc, chắc hẳn bạn đã không ít lần cần tìm ra cái gì đó trong đống dữ liệu của mình. Giả sử ở đây mình có danh sách nhà cung cấp & khách hàng với hơn 870 dòng dữ liệu, để tìm tên một đối tượng nào đó bạn có thể làm như cách thông thường đó là mở hộp thoại Find & Replace (Ctrl + F) lên và thực hiện tìm kiếm hoặc bạn sử dụng chức năng lọc. Tuy nhiên, thao tác này khá mất thời gian. Vậy với VBA thì chúng ta sẽ làm được gì?.

Cách 1: Ứng dụng Chức năng AutoFilter trong Excel kết hợp với VBA.

Với cách này chúng ta sẽ sử dụng AutoFilter mà Excel hỗ trợ để tạo tìm kiếm.

Khi bạn nhập dữ liệu vào trong ô C3 và ấn Enter, sau đó chạy Code sau thì. VBA sẽ thực hiện lọc ra những dữ liệu ở cột TEN_DT với điều kiện những TEN_DT này phải chứa giá trị trong ô C3.

VD: Khi bạn gõ chữ CỔ PHẦN vào ô C3, sau đó chạy Code thì VBA sẽ lọc ra những TEN_DT có chứa chữ CỔ PHẦN đó và trả về kết quả lọc cho bạn. bạn có thể quan sát kết quả ở hình.

Đấy  là một cách mà bạn có thể áp dụng. Hoặc bạn tham khảo thêm cách 2 ngay sau đây để có thể lựa chọn ra cách tối ưu và phù hợp nhất.

Cách 2: Sử dụng VBA kết hợp với ẩn dòng.

Với cách này chúng ta sẽ thực hiện ẩn đi những dòng mà không chứa chuỗi ta cần tìm. Ta thực hiện một vòng lặp chạy qua cột TEN_DT và tìm kiếm xem chuỗi mà ta nhập vào trong ô C3 có chứa trong đó không, nếu không tìm thấy (tức dòng If…..trong Code là đúng) thì ta sẽ ẩn dòng đó đi. Khi vòng lặp chạy xong thì còn lại những dòng không bị ẩn (tức những dòng này có chứa chuỗi mà ta nhập vào trong ô C3). Và nhớ là trước khi chạy vòng lặp ta cần phải bỏ ẩn tất cả dữ liệu đã nha bạn 😊.

Để mỗi lần bạn thay đổi giá trị trong ô C3 thì kết quả tìm kiếm sẽ lấy ra ngay lập tức thì bạn tại Sheet2 bạn tạo 1 sự kiện Wordksheet_change như sau:

Như vậy qua bài viết này, Học Excel Online hy vọng bạn đã có thể biết thêm một số cách và tạo ra được công cụ tìm kiếm nho nhỏ cho File Excel của mình từ đó góp  phần nâng cao hiệu suất hơn trong trong công việc. Mở rộng vấn đề hơn, thay vì bạn chỉ tìm kiếm trên 1 cột thì bạn có thể suy nghĩ và linh hoạt Code trên thêm để sao cho tìm kiếm được trong toàn bộ cột của dữ liệu. Chúc bạn thành công!


sử dụng autofilter hiệu quả hơn với vba

Tự động hoá Advanced Filter với Recod Macro


Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •