如何使用 vba 过滤列(带有示例)


您可以使用以下方法通过 VBA 在 Excel 中按列进行筛选:

方法一:根据列的值进行过滤

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value
End Sub

这个特定的宏将过滤范围A1:C11以仅显示第一列等于单元格F2的值的行。

方法2:根据多个列值进行过滤

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value, _
                                 Operator:=xlOr, Criteria2:=Range(" F3 ").Value
End Sub

此特定宏将过滤范围A1:C11以仅显示第一列等于单元格F2F3的值的行。

方法 3:清除过滤器

 SubClearFilters ()
ActiveSheet.AutoFilterMode = False
End Sub

这个特定的宏将清除当前工作表中的所有过滤器。

以下示例展示了如何在实践中使用每种方法。

示例 1:根据列的值进行过滤

假设我们有一个包含各种篮球运动员信息的数据集,并且我们希望过滤该数据集以仅包含 Team 列中的值等于 A 的行:

我们可以创建以下宏来执行此操作:

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value
End Sub

当我们运行此宏时,数据集将自动过滤为仅包含 Team 列中的值等于 A 的行:

基于单元格值的VBA过滤列

示例 2:根据多个列值进行过滤

假设我们要过滤数据集以仅包含 Team 列中的值等于 AC 的行:

我们可以创建以下宏来执行此操作:

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value, _
                                 Operator:=xlOr, Criteria2:=Range(" F3 ").Value
End Sub

当我们运行此宏时,数据集会自动过滤以仅显示“团队”列中的值等于 AC 的行。

基于多个条件的VBA过滤列

注意:您可以在此处找到 VBA AutoFilter方法的完整文档。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

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

添加评论

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