Làm thế nào để Áp dụng & Xóa Bộ lọc khỏi Dữ liệu bằng VBA?

Bộ lọc VBA trong Excel

Công cụ Bộ lọc VBA được sử dụng để sắp xếp hoặc tìm nạp dữ liệu cụ thể mong muốn, hàm Bộ lọc tự động được sử dụng như một hàm trang tính, tuy nhiên, hàm này có các đối số khác với nó là tùy chọn và đối số bắt buộc duy nhất là biểu thức bao gồm phạm vi chẳng hạn trang tính (“Sheet1”). Phạm vi (“A1”). Bộ lọc tự động sẽ áp dụng bộ lọc trên cột đầu tiên.

Bộ lọc trong VBA hoạt động giống như cách nó hoạt động trong trang tính. Điểm khác biệt duy nhất là chúng ta có thể tự động hóa công việc lọc dữ liệu thông qua mã hóa.

AutoFilter là một hàm bao gồm nhiều giá trị cú pháp. Dưới đây là các tham số liên quan đến chức năng AutoFilter.

  • Phạm vi là thứ đầu tiên chúng tôi cần cung cấp để sử dụng tùy chọn “AutoFilter”. Điều này chỉ đơn giản là cho phạm vi ô mà chúng tôi cần áp dụng bộ lọc, ví dụ: Phạm vi (“A1: D50”).
  • Trường là đối số đầu tiên trong hàm. Khi phạm vi ô được chọn thông qua đối tượng VBA RANGE, chúng ta cần đề cập đến cột nào của phạm vi mà chúng ta muốn áp dụng bộ lọc.
  • Tiêu chí 1 không là gì ngoài việc trong Trường đã chọn , bạn muốn lọc ra giá trị nào.
  • Toán tử được sử dụng trong trường hợp bạn muốn sử dụng đối số Tiêu chí 2 . Trong tùy chọn này, chúng ta có thể sử dụng các tùy chọn bên dưới.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Trình đơn thả xuống hiển thị là có hiển thị biểu tượng bộ lọc trong cột được áp dụng bộ lọc hay không. Nếu bạn muốn hiển thị, thì bạn có thể cung cấp đối số là TRUE hoặc nếu không, FALSE.

Ví dụ để lọc dữ liệu bằng VBA

Ví dụ # 1 - Áp dụng hoặc Xóa Bộ lọc cho Dữ liệu

Trong trường hợp nếu bạn muốn áp dụng tùy chọn bộ lọc cho dữ liệu, thì chúng ta có thể tắt và bật tùy chọn này. Ví dụ, hãy nhìn vào hình ảnh dữ liệu dưới đây.

Bước 1: Cung cấp dải dữ liệu

Để kích hoạt tùy chọn bộ lọc trước tiên, chúng tôi cần cung cấp phạm vi dữ liệu của chúng tôi là gì. Trong hình trên, dữ liệu của chúng tôi được trải rộng từ A1 đến G31, vì vậy hãy cung cấp phạm vi này bằng cách sử dụng đối tượng RANGE.

Mã:

Bộ lọc phụ_Ví dụ () Phạm vi ("A1: G31") Kết thúc phụ
Bước 2: Sau đó truy cập chức năng AutoFilter

Bây giờ truy cập chức năng AutoFilter cho phạm vi này.

Mã:

Phạm vi Bộ lọc phụ_Ví dụ () ("A1: G31"). Bộ lọc phụ Kết thúc Bộ lọc phụ
Bước 3: Chạy mã để bật bộ lọc

Đó là tất cả. Chạy mã này để bật bộ lọc tự động.

Mã này hoạt động như một nút chuyển đổi và nếu bộ lọc không được áp dụng, thì nó sẽ được áp dụng. Nếu đã được áp dụng, thì nó sẽ loại bỏ.

Ví dụ # 2 - Lọc Giá trị Cụ thể

Bây giờ chúng ta sẽ xem cách sử dụng các tham số của tùy chọn AutoFilter. Lấy dữ liệu tương tự như trên. Ví dụ: bây giờ chúng ta cần lọc ra tất cả tên giới tính "Nam".

Bước 1: Chọn phạm vi và mở chức năng tự động lọc
Step 2: Then Select Field

In the first argument of the function i.e., Field, we need to mention the column reference that we would like to filter out. In this example, we need to filter only “Male” candidates, which is column “C,” so column number is 3.

Step 3: Now Mention Criteria

Now for this supplied Field, we need to mention the Criteria 1 i.e., what value we need to filter in the mentioned Field. We need to filter “Male” from this column.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=3, Criteria1:="Male" End Sub
Step 4: And run the code

Ok, that’s all. This code will filter only “Male” candidates now.

Example #3 - Usage of OPERATOR Argument

When you want to filter out more than one value from the column, we need to use the “Operator” argument. For example, from the column “Major,” we need to filter only “Math & Politics,” then we need to use this argument.

Step 1: Select Range and Autofilter Field

First, supply the Range of cells and fields.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, End Sub
Step 2: Enter Criteria 1 as Math

For the mentioned filed, we need to supply Criteria 1 as “Math.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", End Sub
Step 3: Use Operator xl

Since we need to filter one more value from the same column or field, use the operator symbol as “xlOr.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr End Sub
Step 4: Enter Criteria 2 as Politics

And for Criteria 2 argument mention the value as “Politics.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr, Criteria2:="Politics" End Sub

This will filter out both “Math” & “Politics” from column “Major.”

Example #4 - Filter Numbers with Operator Symbols

For example, if you want to filter numbers with, then we can filter a specific number as well as numbers above, below, or between specific values and range of values.

For example, from the age column, if you want to filter persons aged more than 30, then we can write the code like below.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">30" End Sub

This will filter all the values that are more than 30.

Now, if you want to filter values between 21 and 31, then we can use the below code.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">21", Operator:=xlAnd, Criteria2:="<31" End Sub

This will filter persons aged between 21 and 30.

Example #5 - Apply Filter for More Than One Column

If you want to filter values from more than one column criteria, then we need to use a slightly different technique.

If you want to filter “Student Status” as “Graduate” and “Country” as “US,” then first, we need to supply the RANGE of cells under the “WITH” statement.

Code:

Sub Filter_Example() With Range("A1:G31") End With End Sub

Bây giờ bên trong câu lệnh WITH, cung cấp tiêu chí đầu tiên được lọc.

Mã:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" End With End Sub

Bây giờ trong dòng tiếp theo, hãy làm tương tự cho “Quốc gia” bằng cách thay đổi “Trường” thành 6 và Tiêu chí thành “Hoa Kỳ”.

Mã:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" .AutoFilter Field: = 6, Criteria1: = "US" End With End Sub

Bây giờ, điều này sẽ chỉ lọc “Sau đại học” cho quốc gia “Hoa Kỳ”.

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

  • Điều đầu tiên đầu tiên chỉ cho phạm vi bộ lọc ô đã đề cập sẽ được áp dụng.
  • Trường không có gì trong cột mà bạn muốn lọc dữ liệu.
  • Trong trường hợp lọc các giá trị từ nhiều hơn một cột, hãy sử dụng Với.

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