Tóm lại: Tìm hiểu cách áp dụng bộ lọc số với VBA. Bao gồm các ví dụ để lọc phạm vi giữa hai số, trên / dưới 10, trên / dưới trung bình, v.v.
Cấp độ kỹ năng: Trung cấp
Tải tập tin
Có thể tải xuống tệp Excel có chứa mã bên dưới. Tệp này chứa mã để lọc các loại dữ liệu và loại bộ lọc khác nhau. Xin vui lòng xem bài viết của tôi về Hướng dẫn cuối cùng cho AutoFilters trong VBA để biết thêm chi tiết.
VBA AutoFilters Guide.xlsm (100,5 KB)
Bộ lọc số trong Excel
Khi lọc cột chứa số, chúng tôi có thể chọn các mục từ danh sách menu thả xuống của bộ lọc.
Tuy nhiên, thường dễ dàng hơn khi sử dụng các tùy chọn trong menu phụ Bộ lọc số để tạo bộ lọc tùy chỉnh. Điều này cho chúng ta các tùy chọn cho tiêu chí lọc bằng, không bằng, lớn hơn, nhỏ hơn hoặc bằng, giữa, trên 10 và trên / dưới trung bình.
Macro sau đây chứa các ví dụ cho các loại bộ lọc số khác nhau. Điều quan trọng cần lưu ý là các giá trị tham số Tiêu chí được bao bọc trong các dấu ngoặc kép. Các toán tử so sánh cũng được bao gồm bên trong dấu ngoặc kép. Vui lòng xem bài viết của tôi trên Hướng dẫn cuối cùng về Bộ lọc trong VBA để biết thêm chi tiết về cách sử dụng phương pháp AutoFilter và các tham số của nó.
Khi áp dụng bộ lọc cho một số, chúng tôi cần sử dụng định dạng số được áp dụng trong cột. Đây là một quirk lạ của VBA có thể gây ra kết quả không chính xác nếu bạn không biết quy tắc. Có một ví dụ trong đoạn code dưới đây.
Sub AutoFilter_Number_Examples()
'Examples for filtering columns with NUMBERS
Dim lo As ListObject
Dim iCol As Long
'Set reference to the first Table on the sheet
Set lo = Sheet1.ListObjects(1)
'Set filter field
iCol = lo.ListColumns("Revenue").Index
'Clear Filters
lo.AutoFilter.ShowAllData
With lo.Range
'Single number - Use formatting that is visible in
'filter drop-down menu
.AutoFilter Field:=iCol, Criteria1:="$2,955.25"
'Not equal to - Does not require number formatting to match
.AutoFilter Field:=iCol, Criteria1:="<>2955.25"
'Greater than or less than a number
'(comparison operator < > = before number in Criteria1)
.AutoFilter Field:=iCol, Criteria1:="<4000"
'Between 2 numbers
'(greater than or equal to 100 and less than 4000)
.AutoFilter Field:=iCol, _
Criteria1:=">=100", _
Operator:=xlAnd, _
Criteria2:="<4000"
'Outside range (less than 100 OR greater than 4000)
.AutoFilter Field:=iCol, _
Criteria1:="<100", _
Operator:=xlOr, _
Criteria2:=">4000"
'Top 10 items (Criteria1 is number of items)
.AutoFilter Field:=iCol, _
Criteria1:="10", _
Operator:=xlTop10Items
'Bottom 5 items (Criteria1 is number of items)
.AutoFilter Field:=iCol, _
Criteria1:="5", _
Operator:=xlBottom10Items
'Top 10 Percent (Criteria1 is number of items)
.AutoFilter Field:=iCol, _
Criteria1:="10", _
Operator:=xlTop10Percent
'Bottom 7 Percent
.AutoFilter Field:=iCol, _
Criteria1:="7", _
Operator:=xlBottom10Percent
'Above Average - Operator:=xlFilterDynamic
.AutoFilter Field:=iCol, _
Criteria1:=xlFilterAboveAverage, _
Operator:=xlFilterDynamic
'Below Average
.AutoFilter Field:=iCol, _
Criteria1:=xlFilterBelowAverage, _
Operator:=xlFilterDynamic
End With
End Sub
DienDan.Edu.Vn Cám ơn bạn đã quan tâm và rất vui vì bài viết đã đem lại thông tin hữu ích cho bạn.DienDan.Edu.Vn! là một website với tiêu chí chia sẻ thông tin,... Bạn có thể nhận xét, bổ sung hay yêu cầu hướng dẫn liên quan đến bài viết. Vậy nên đề nghị các bạn cũng không quảng cáo trong comment này ngoại trừ trong chính phần tên của bạn.Cám ơn.