Vba:如何使用具有多个条件的自动筛选器
您可以使用以下方法在 VBA 中使用具有多个条件的自动筛选:
方法 1:在单列中使用具有多个条件的自动筛选
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
此特定宏将过滤范围A1:C11中第一列的值等于“A”或“C”的所有行。
方法 2:在多列中使用具有多个条件的自动筛选
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
此特定宏将过滤范围A1:C11 ,以仅显示第一列等于“A”且第二列等于“Guard”的行。
以下示例展示了如何在 Excel 中使用以下数据集来实际使用这些方法:
示例 1:在列中使用具有多个条件的自动筛选
假设我们要过滤数据集以仅显示第一列等于“A”或“C”的行。
我们可以创建以下宏来执行此操作:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
当我们运行这个宏时,我们会收到以下输出:
请注意,数据集已被过滤为仅显示第一列等于“A”或“C”的行。
注意:我们只在Array()函数中包含了两个可能的值,但您可以随意包含任意多个值。
示例 2:在多列中使用具有多个条件的自动筛选器
假设我们要过滤数据集以仅显示 Team 列值等于 A且Position 列值等于 Guard 的行。
我们可以创建以下宏来执行此操作:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
当我们运行这个宏时,我们会收到以下输出:
我注意到数据集被过滤为仅显示“Team”列中的值等于 A并且“Position”列中的值等于 Guard 的行。
注意:您可以在此处找到 VBA AutoFilter方法的完整文档。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: