VBA AutoFilter | Làm thế nào để sử dụng VBA AutoFilter Criteria để lọc dữ liệu?

Excel VBA AutoFilter

AutoFilter trong VBA được sử dụng như một biểu thức và cú pháp cho nó như sau Biểu thức. Bộ lọc tự động (Trường, Tiêu chí 1, Toán tử, Tiêu chí 2, Trình đơn thả xuống) tất cả các đối số là tùy chọn. Bộ lọc rất hữu ích trong việc lọc dữ liệu cụ thể khỏi dữ liệu khổng lồ.

Nếu bạn là người thường xuyên sử dụng thì các bộ lọc excel không phải là điều xa lạ đối với bạn. Một số công cụ chúng tôi sử dụng trong trang tính cũng được tích hợp vào VBA và tùy chọn bộ lọc tự động là một trong những công cụ quan trọng có sẵn trong VBA. Như chúng ta đã biết bộ lọc excel có sẵn trong tab dữ liệu.

Sử dụng tùy chọn bộ lọc này, chúng tôi có thể thử nghiệm với dữ liệu. Nếu bạn đang xử lý một lượng dữ liệu tối thiểu và nếu bạn cho rằng tùy chọn bộ lọc tự động VBA không thực sự cần thiết, bạn có thể tiếp tục sử dụng tùy chọn bộ lọc trang tính.

Nếu bạn xử lý một lượng lớn dữ liệu thì bạn có thể sử dụng tùy chọn Bộ lọc tự động để đơn giản hóa quy trình.

Cú pháp của hàm AutoFilter

Tự động lọc trong Excel VBA có thể được sử dụng với một đối tượng phạm vi. Giống như các hàm khác của chúng tôi, hàm này cũng có cú pháp riêng.

  • Phạm vi: Phạm vi chỉ đơn giản là trong phạm vi mà bạn muốn áp dụng bộ lọc.
  • Trường: Trường có nghĩa là từ cột nào của phạm vi bạn đã chọn mà bạn muốn lọc ra dữ liệu. Một cột sẽ được tính từ trái sang phải.

Ví dụ: nếu phạm vi của bạn từ A1 đến D100 và bạn muốn áp dụng bộ lọc cho cột D thì số trường của bạn là 4 vì trong phạm vi đã chọn D là cột thứ tư.

Tiêu chí 1: Trong trường, bạn đã chọn những gì bạn muốn lọc.

  • Toán tử: Nếu bạn muốn áp dụng nhiều hơn một tiêu chí để lọc dữ liệu thì chúng ta cần sử dụng các ký hiệu toán tử. Một số mã nhà điều hành như dưới đây.

xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues.

Tiêu chí 2: Điều thứ hai bạn muốn lọc cùng với Tiêu chí 1 là gì?

  • Thả xuống có thể nhìn thấy: Bạn có muốn hiển thị biểu tượng của bộ lọc thả xuống trong cột được lọc không. Nếu bạn muốn hiển thị TRUE là đối số, nếu không FALSE là đối số.

Làm thế nào để áp dụng bộ lọc bằng VBA AutoFilter? (với Ví dụ)

Bạn có thể tải xuống Mẫu tự động lọc VBA này tại đây - Mẫu tự động lọc VBA

Giả sử bên dưới dữ liệu bạn đang làm việc.

Bây giờ bằng cách sử dụng mã VBA, chúng tôi sẽ áp dụng bộ lọc. Làm theo các bước dưới đây để áp dụng bộ lọc.

Bước 1: Bắt đầu quy trình con bằng cách đặt tên cho macro.

Mã:

 Sub AutoFilter_Example1 () End Sub 

Bước 2: Điều đầu tiên  là chúng ta cần áp dụng bộ lọc trong phạm vi nào. Trong trường hợp này, chúng ta cần áp dụng phạm vi từ dải A1 đến E25.

Mã:

 Sub AutoFilter_Example1 () Range ("A1: E25") End Sub 

Bước 3: Khi phạm vi đã được chọn, bây giờ hãy áp dụng tùy chọn bộ lọc tự động.

Mã:

 Sub AutoFilter_Example1 () Range ("A1: E25"). AutoFilter End Sub 

Chúng tôi không chọn bất kỳ giá trị nào bằng bộ lọc tự động thay vì chúng tôi chỉ áp dụng bộ lọc tại thời điểm này.

Chạy mã bằng phím F5 hoặc theo cách thủ công nó sẽ chèn bộ lọc cho phạm vi đã chọn.

Vì vậy, nó đã áp dụng một bộ lọc cho dữ liệu. Bây giờ chúng ta sẽ xem cách lọc ra dữ liệu.

Ví dụ # 1 - Lọc ra dữ liệu bằng cách sử dụng tự động lọc

Hãy xem xét cùng một dữ liệu từ ví dụ trên. Bây giờ chúng ta cần lọc ra bộ phận "Tài chính" từ cột bộ phận.

Bước 1: Sau khi bộ lọc đã được áp dụng, đối số đầu tiên là đề cập đến việc chúng ta đang lọc dữ liệu từ cột nào. Trong trường hợp này, chúng ta cần lọc dữ liệu từ cột Bộ phận, vì vậy cột số nếu 5.

Mã:

 Sub AutoFilter_Example1 () Range ("A1: E25"). Trường AutoFilter: = 5, End Sub 

Bước 2: Tiêu chí 1 không là gì ngoài những gì chúng ta muốn lọc từ cột thứ 5. Vì vậy, chúng ta cần lọc ra "Tài chính".

Mã:

 Sub AutoFilter_Example1 () Range ("A1: E25"). Trường AutoFilter: = 5, Criteria1: = "Finance" End Sub 

Vậy là xong, hãy chạy mã này theo cách thủ công hoặc thông qua phím F5, nó sẽ chỉ lọc ra “Tài chính” khỏi danh sách.

Ví dụ # 2 - Toán tử trong AutoFilter

Chúng ta đã thấy cách lọc giá trị đơn lẻ. Bây giờ chúng ta sẽ xem cách lọc nhiều phần tử. Giả sử cùng với "Tài chính", bạn cũng muốn lọc bộ phận "Bán hàng", vì vậy chúng tôi có thể thực hiện việc này bằng cách sử dụng Toán tử.

Bước 1: Sau khi áp dụng tiêu chí đầu tiên trong đối số tiếp theo, chọn toán tử là “xlOr”.

Mã:

 Sub AutoFilter_Example2 () Range ("A1: E25"). Trường AutoFilter: = 5, Criteria1: = "Finance", Operator: = xlOr End Sub 

Bước 2: Bây giờ trong Tiêu chí 2, hãy đề cập đến giá trị là “Doanh số”.

Mã:

 Sub AutoFilter_Example2 () Range ("A1: E25"). Trường AutoFilter: = 5, Criteria1: = "Finance", Operator: = xlOr, Criteria2: = "Sales" End Sub 

Bước 3: Ok, chạy xong mã này bằng phím F5 hoặc thủ công nó sẽ lọc ra cả “Tài chính” và “Bán hàng”.

Trong đối số Nhà điều hành, tôi đã sử dụng “xlOr”, điều này sẽ chọn cả “Tài chính” và “Bán hàng” trong bộ lọc.

Ví dụ # 3 - Số bộ lọc bằng Tự động lọc

Sử dụng ký hiệu Toán tử “XlAnd”, chúng ta cũng có thể lọc ra các số. Giả sử từ cột Thời gian làm thêm, bạn muốn lọc ra tất cả các giá trị> 1000 nhưng <3000.

Bước 1: Điều đầu tiên  là thay đổi Trường từ 5 thành 4.

Mã:

 Sub AutoFilter_Example3 () Range ("A1: E25"). Trường AutoFilter: = 4 End Sub 

Bước 2: Tiêu chí 1 là> 1000.

Mã:

 Sub AutoFilter_Example3 () Range ("A1: E25"). Trường AutoFilter: = 4, Criteria1: = "> 1000", End Sub 

Bước 3: Ở đây chúng ta cần phải khớp cả hai tiêu chí, vì vậy hãy sử dụng “xlAnd” làm toán tử.

Mã:

 Sub AutoFilter_Example3 () Range ("A1: E25"). Trường AutoFilter: = 4, Criteria1: = "> 1000", Toán tử: = xlAnd, End Sub 

Bước 4: Tiêu chí 2 sẽ <3000.

Mã:

 Sub AutoFilter_Example3 () Range ("A1: E25"). Trường AutoFilter: = 4, Criteria1: = "> 1000", Operator: = xlAnd, Criteria2: = "<3000" End Sub 

Bây giờ nếu bạn chạy mã này theo cách thủ công hoặc thông qua phím F5, nó sẽ lọc ra tất cả các giá trị từ cột Overtime> 1000 nhưng <3000.

Ví dụ # 4 - Lọc từ các cột khác nhau bằng AutoFilter

Để lọc ra dữ liệu từ các cột khác nhau, chúng ta cần sử dụng một quy trình khác. Giả sử bạn muốn lọc ra bộ phận "Tài chính" và bạn cũng muốn lọc ra các số Lương> 25000 nhưng <40000.

Bạn có thể sử dụng đoạn mã dưới đây để thực hiện điều đó.

Mã:

 Sub AutoFilter_Example4 () With Range ("A1: E25") .AutoFilter Field: = 5, Criteria1: = "Finance" .AutoFilter Field: = 2, Criteria1: = "> 25000", Operator: = xlAnd, Criteria2: = " <40000 "End With End Sub 

Điều này sẽ lọc ra hai cột.

Chạy mã này bằng phím F5 hoặc bạn có thể chạy thủ công.

Những điều cần ghi nhớ

  • Hãy thử các kết hợp khác nhau trong Operator để có kiến ​​thức về VBA AutoFilter.
  • Nếu bạn không chắc chắn những gì cần nhập, hãy thử sử dụng trình ghi macro.
  • Nếu bạn muốn lọc ra các giá trị văn bản thì bạn cần cung cấp chúng trong dấu ngoặc kép.
  • Sử dụng câu lệnh WITH để áp dụng nhiều bộ lọc cột.

$config[zx-auto] not found$config[zx-overlay] not found