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ồ.

Giả sử bạn là một 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 đang xử lý một lượng lớn dữ liệu, thì bạn có thể sử dụng tùy chọn Autofilter để đơn giản hóa quy trình.

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

AutoFilter 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 bởi 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 fop xuống trong cột đã lọc. 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ụ)

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: Việc đầ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ào đó, chúng tôi chỉ đang á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, hãy 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 theo cách 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

Using the Operator symbol “XlAnd,” we can filter out numbers as well. Assume from the Overtime column you want to filter out all the values which are>1000 but <3000.

Step 1: The first thing is changing the Field from 5 to 4.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4 End Sub

Step 2: Criteria 1 is>1000.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4,Criteria1:=">1000", End Sub

Step 3: Here, we need to match both the criteria, so use “xlAnd” as the operator.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, End Sub

Step 4: Criteria 2 will <3000.

Code:

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

Now, if you run this code manually or through the F5 key, it will filter out all the values from the Overtime column, which are>1000 but <3000.

Example #4 - Filter from Different Columns using AutoFilter

In order to filter out data from different columns, we need to use a different process. Assume you want to filter out the “Finance” department and also you want to filter out Salary numbers, which are>25000 but <40000.

You can use the below code does that.

Code:

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 Toán tử để có kiến ​​thức về Bộ lọc tự động VBA.
  • Nếu bạn không chắc chắn nên nhập gì, 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.

thú vị bài viết...