VBA Excel (Bài 44): Cách sử dụng AutoFilter trong VBA

Việc sử dụng AutoFilter rất hữu ích trong việc lọc dữ liệu để chỉ lấy những giá trị phù hợp từ 1 bảng dữ liệu lớn. Việc này sẽ giúp chúng ta tiết kiệm thời gian và tài nguyên hơn nhiều so với việc sử dụng vòng lặp với cùng 1 điều kiện. Mặc dù việc này trái ngược với tư duy lập trình thông thường (sử dụng các thuật toán về vòng lặp, điều kiện cho vòng lặp) nhưng rất hữu ích trong việc cá nhân hóa các yêu cầu làm việc của cá nhân, không mang nặng tính lập trình mà chú trọng vào tính hiệu quả công việc.

Hiệu quả của phương pháp này thông qua các bước sau:

  • Bước 1: Xác định điều kiện lọc
  • Bước 2: Thực hiện việc lọc bằng AutoFilter
  • Bước 3: Sử dụng SpecialCells để lấy những giá trị kết quả sau khi lọc
  • Bước 4: Kết hợp với copy / paste để lấy dữ liệu sang nơi cần lấy kết quả

Sau đây chúng ta cùng tìm hiểu một vài cấu trúc AutoFilter thường sử dụng trong VBA như sau:

Ví dụ 1: Vùng dữ liệu tĩnh, cố định

VungRange.Autofilter Cột áp dụng, Điều kiện áp dụng

Range(“A1:A12”) là vùng cố định, vùng tĩnh

Field:=1 là Filter tại cột thứ 1

  • Vì áp dụng trong vùng A1:A12 chỉ có 1 cột nên giá trị này chỉ có thể là 1.
  • Nếu Vùng A1:D20 thì có thể chọn cột cần lọc là cột A (=1), cột B (=2), cột C (=3), cột D (=4)

Criteria1:=”An” là giá trị cần lọc là các ô có giá trị là “An”

Câu lệnh Range(“$A$1:$A$12”).AutoFilter là tắt chức năng AutoFilter (vì ở bước trên đã mở chức năng Autofilter nên khi lặp lại lệnh này đồng nghĩa với việc tắt chức năng đó)

Ví dụ 2: Sử dụng AutoFilter trên mảng động

Mảng động ở đây có thể là Tính từ dòng bắt đầu bảng cho tới dòng cuối có chứa dữ liệu trong bảng

Ví dụ 3: Một số điều kiện lọc thường dùng

Điều kiện dạng chuỗi ký tự xác định => Được đặt trong dấu nháy kép: Dấu nháy kép + Nội dung điều kiện + Dấu nháy kép

Criteria1:=”An”

Điều kiện dạng kết hợp toán tử: Ký hiệu toán tử + dấu & + Giá trị tham chiếu (có thể đặt trong dấu nháy kép)

Criteria1:= “>=” & 100

Điều kiện khác rỗng

Criteria1:= “<>”

Qua bài học này chúng ta có thể ứng dụng AutoFilter vào nhiều công việc khác nhau, đặc biệt là về phân tích và trích lọc dữ liệu.