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 列值等于 APosition 列值等于 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 中执行其他常见任务:

VBA:如何过滤数据透视表
VBA:如何清除过滤器
VBA:如何删除重复值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注