VBA自动筛选|如何使用VBA自动筛选条件筛选数据?
Excel VBA自动筛选
VBA中的自动筛选器用作表达式,其语法如下表达式。 Autofilter(字段,条件1,运算符,条件2,下拉菜单)的所有参数都是可选的。该过滤器有助于从海量数据中过滤特定数据。
如果您是普通用户,那么excel过滤器对您来说并不是一件奇怪的事情。我们在工作表中使用的某些工具也已集成到VBA中,并且自动筛选选项是VBA中可用的重要工具之一。众所周知,“数据”标签下提供了excel过滤器。
使用此过滤器选项,我们可以处理数据。如果您处理的数据量很少,并且您认为确实不需要VBA自动过滤器选项,则可以继续使用工作表过滤器选项。
如果您处理大量数据,则可以使用“自动筛选”选项来简化处理流程。
自动筛选功能的语法
Excel VBA中的自动筛选可以与范围对象一起使用。像我们的其他功能一样,它也有自己的语法。
- 范围: 范围就是您要应用过滤器的范围。
- 场地: 字段表示您要从范围的哪一列中选择要过滤出的数据。一列将从左到右计数。
例如,如果您的范围是从A1到D100,并且您想为D列应用过滤器,则您的字段号是4,因为在所选范围中D是第四列。
准则1: 在该字段中,您选择了要过滤的内容。
- 操作员: 如果要应用多个标准过滤数据,则需要使用运算符。一些操作员代码如下。
xlAnd,xlOr,xlBottom10Items,xlTop10Items,xlTop10Percent,xlBottom10Percent,xlFilterCellColor,xlFilterDynamic,xlFilterFontColor,xlFilterIcon和xlFilterValues。
准则2: 您要与条件1一起过滤的第二件事是什么?
- 可见的下拉列表: 是否要在过滤列中向下显示过滤器框的图标。如果要显示TRUE,则为FALSE,否则为FALSE。
如何使用VBA自动筛选应用筛选器? (带有示例)
您可以在此处下载此VBA自动筛选模板– VBA自动筛选模板在下面假设您正在处理的数据。
现在,通过使用VBA代码,我们将应用过滤器。请按照以下步骤应用过滤器。
步骤1: 通过给宏命名来启动子过程。
代码:
子AutoFilter_Example1()结束子
步骤2:第一个 问题是我们需要在什么范围内应用过滤器。在这种情况下,我们需要应用范围从A1到E25的范围。
代码:
Sub AutoFilter_Example1()范围(“ A1:E25”)结束Sub
第三步: 选择范围后,现在应用自动过滤选项。
代码:
Sub AutoFilter_Example1()Range(“ A1:E25”)。AutoFilter End Sub
我们不会使用自动过滤器来选择任何值,而只是在此时应用过滤器。
使用F5键运行代码,或手动运行,它将为所选范围插入过滤器。
因此,它已对数据应用了过滤器。现在,我们将看到如何过滤数据。
Example#1 –使用自动过滤器过滤掉数据
考虑上面示例中的相同数据。现在我们需要从“部门”列中过滤掉“财务”部门。
步骤1: 应用过滤器后,第一个参数是要提到我们要从哪一列过滤数据。在这种情况下,我们需要过滤“部门”列中的数据,因此列号为5。
代码:
Sub AutoFilter_Example1()范围(“ A1:E25”)。AutoFilter字段:= 5,结束Sub
第2步: 条件1只是我们要从第5列中过滤的内容。因此,我们需要过滤掉“财务”。
代码:
Sub AutoFilter_Example1()Range(“ A1:E25”)。AutoFilter字段:= 5,Criteria1:=“ Finance” End Sub
如此一来,手动运行此代码或通过F5键,它将仅从列表中过滤掉“财务”。
Example#2 –自动过滤器中的运算符
我们已经看到了如何过滤单个值。现在,我们将看到如何过滤多个元素。假设您也想与“财务”一起过滤“销售”部门,所以我们可以通过使用 运营商。
步骤1: 在下一个参数中应用第一个条件后,将运算符选择为“ xlOr”。
代码:
Sub AutoFilter_Example2()Range(“ A1:E25”)。AutoFilter字段:= 5,Criteria1:=“ Finance”,运算符:= xlOr End Sub
第2步: 现在在 准则2 将该值称为“销售”。
代码:
Sub AutoFilter_Example2()Range(“ A1:E25”)。AutoFilter字段:= 5,Criteria1:=“ Finance”,运算符:= xlOr,Criteria2:=“ Sales” End Sub
第三步: 好的,使用F5键或手动运行此代码,它将过滤掉“财务”和“销售”。
在运算符参数中,我使用了 “ xlOr” 这将同时选择 “财务”和“销售” 在过滤器下。
Example#3 –使用自动过滤器过滤编号
使用运算符“ XlAnd”,我们也可以过滤出数字。假设您要从“超时”列中过滤掉所有大于1000但小于3000的值。
步骤1:第一个 事情是将字段从5更改为4。
代码:
Sub AutoFilter_Example3()Range(“ A1:E25”)。AutoFilter字段:= 4 End Sub
步骤2:条件1 > 1000。
代码:
Sub AutoFilter_Example3()范围(“ A1:E25”)。AutoFilter字段:= 4,Criteria1:=“> 1000”,结束
第三步: 在这里,我们需要同时匹配这两个条件,因此请使用“ xlAnd”作为运算符。
代码:
Sub AutoFilter_Example3()Range(“ A1:E25”)。AutoFilter字段:= 4,Criteria1:=“> 1000”,运算符:= xlAnd,结束子
第4步: 条件2将<3000。
代码:
Sub AutoFilter_Example3()Range(“ A1:E25”)。AutoFilter字段:= 4,Criteria1:=“> 1000”,运算符:= xlAnd,Criteria2:=“ <3000”
现在,如果您手动或通过F5键运行此代码,它将从“超时”列中过滤掉所有大于1000但小于3000的值。
Example#4 –使用自动过滤器从不同的列过滤
为了从不同的列中筛选出数据,我们需要使用不同的过程。假设您要过滤掉“财务”部门,并且还想过滤出> 25000但<40000的薪水数字。
您可以使用下面的代码来做到这一点。
代码:
带有范围(“ A1:E25”)的Sub AutoFilter_Example4()。自动过滤字段:= 5,标准1:=“财务”。自动过滤字段:= 2,标准1:=“> 25000”,运算符:= xlAnd,标准2:=“ <40000“结束,结束子
这将滤除两列。
使用F5键运行此代码,也可以手动运行。
要记住的事情
- 尝试在“运算符”下尝试不同的组合,以获取VBA自动筛选的知识。
- 如果您不确定要放入什么内容,请尝试使用宏录制器。
- 如果要过滤出文本值,则需要在双引号中提供它们。
- 使用WITH语句可应用多个列过滤器。