如何使用 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以仅显示第一列等于单元格F2或F3的值的行。
方法 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 的行:
示例 2:根据多个列值进行过滤
假设我们要过滤数据集以仅包含 Team 列中的值等于 A或C 的行:
我们可以创建以下宏来执行此操作:
SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value, _
Operator:=xlOr, Criteria2:=Range(" F3 ").Value
End Sub
当我们运行此宏时,数据集会自动过滤以仅显示“团队”列中的值等于 A或C 的行。
注意:您可以在此处找到 VBA AutoFilter方法的完整文档。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: