Excel数据表Excel VBA(应用Visual Basic for Application)是一个功能强大的编程工具,与MS Office Suite集成。VBA具有许多构造和方法,可以应用于在Excel工作表中操纵数据(您可以查找我们的介绍性VBA教程为了让VBA可以为你做的一切)。VBA中的AutoFilter是一个重要的方法,使您能够过滤工作表和单元格以选择性地选择数据。

今天,我们将通过VBA的自动整理。如果你是vba的新手,我们建议你通过我们的基本Excel VBA教程

AutoFilter适用于列或一组列。它根据给定的标准而过滤数据。autofilter的语法看起来像这样

表达式.Autofilter(现场,条件1,运营商,标准2,visibledropdown)

在哪里

名称

价值

描述

XLAND

1

逻辑和标准1和标准2。

XLbottom10Items.

4.

显示最低值的项目(标准中指定的项目数)。

xlbottom10percent.

6.

显示的最低值项(标准a1中指定的百分比)。

xlfiltercellcolor.

8.

细胞的颜色

xlfilterdynamic.

11.

动态过滤器

xlFilterFontColor

9.

字体的颜色

xlFilterIcon

10.

过滤器图标

xlfiltervalues.

7.

过滤器值

Xlor.

2

标准1或标准2的逻辑或。

XLTOP10ITEMS.

3.

显示的最高值(标准中指定的项目数)。

xltop10percent.

5.

显示最高值的项目(条件1中指定的百分比)。

现在,您熟悉AutoFilter的概念和语法,让我们继续转移到一些简单实用的练习。随意地请参阅我们的VBA宏课程在任何时候有关更多详细信息。

示例1:关闭所有现有的自动过滤器并创建新的自动变频器

sub autofilter1()使用ActiveSheet .AutoFilterMode = false .range(“A1:E1”)。自动滤波结束

在此程序中.AutoFilterMode = False关闭任何现有的自动过滤器。而.Range(“A1:E1”)。自动滤波器创建一个自动滤波器,可应用于Active工作表的范围A1:E1。

从这里开始,我们将引用一个工作表,该工作表在A1:D1和A1:D50范围内的数据范围内具有标题。标题如下:

雇佣寿命|E-Age |加入日期|部门

示例2:使用autofilter匹配单个标准

sub filterto1criTeria()使用Sheet1 .AutoFilterMode = false .range(“A1:D1”)。自动滤波器.Range(“A1:D1”)。自动滤波器字段:= 2,标准1:= 40以结束子分配

这是一个简单的程序,提取员工年龄为40的行。“场”值为2,这意味着它是指“E-Age”的第二列。标准是第2列中的值应该等于40.让我们看一下您可以在程序中包含的各种类型的标准。

标准1:=“> = 40”
标准1:=“=”
标准1:=“<>”
字段:= 1和标准1:=“= B *”
标准1:=“<> * e *”

示例3:使用VBA AutoFilter过滤掉两个匹配标准

使用Sheet1 .AutoFilterMode = false .range(“A1:D1”)。AutoFilter .range(“A1:D1”)。自动滤波器字段:= 2,条件1:=“> = 30”,_运算符:=XLAND,标准2:=“<= 40”结束结束子

在这个程序中,我们指定了两个标准。使用的操作员是2个标准的“逻辑和”。因此,只选择这些记录,其中“E-Age”是“> = 30”和“<= 40”。

示例4:在两个不同的字段上使用autofilter

sub filter2fields()使用Sheet1 .AutoFilterMode = false,使用.range(“A1:D1”).AutoFilter .AutoFilter字段:= 1,条件1:=“John”.Autofilter字段:= 4,标准1:=“财务”结束,结束子子

在这个计划中,我们选择了员工姓名是“John”的记录,其部门是“财务”。可以添加更多字段;作为我们的条件不应超过标题的总柱数,即四个。

在autofilter中使用日期

MS Excel使用美国日期格式。我们建议您将日期设置更改为此格式。否则您必须使用dateserial()。语法看起来像这样

Dateserial(年,月,日)

让我们来看看一个使用数据类型日期来过滤列的示例。

示例5:按日期过滤的程序

子FilterDate1()暗淡DEAD1作为日期DIM str_date作为字符串暗淡l_date作为long date1 = dateserial(2010,12,120,4)l_date = date1范围(“a1”)。自动滤波器范围(“a1”)。自动滤波器字段:= 1,标准1:=“>”&l_date结束子

在这个程序中,我们声明Date1为date类型的变量,str_Date为string类型的变量,l_Date为long类型的变量。函数的作用是:将传递给它的日期转换为美国日期格式。我们使用Autofilter来显示比给定日期(1/12/2010)更近的记录。

使用Timeerial函数以及VBA AutoFilter

timeerial()函数返回时间,分钟和秒数。语法看起来像这样

时期(小时,分钟,第二)

让我们仔细看看参数以更好地了解它们。所有三个参数都需要整数数据类型。

时期(17,28,20)将返回下午5:28:20的序列表现。Timeserial()可以与Dateserial()一起使用,以返回VBA程序中的确切时间和日期。

例5:使用自动筛选按日期和时间进行筛选

子FilterDateTeme()将DIM D_DATE为DAME DF DB_DATE作为DOUPT DF DB_DATE IF ISDATE(范围(“b1”))然后db_date = srount(“b1”)db_date = dateserial(年(db_date),月(db_date),日(db_date))+ _倍增(小时(db_date),分钟(db_date),第二(db_date))范围(“a1”)。自动滤波器范围(“a1”)。自动滤波器字段:= 1,条件1:=“>”&db_date结束结束子

在此程序中,ISDate()用于了解单元格是否包含可以转换为日期的表达式。然后将单元格的内容分配给DB_Date变量。结合了下一个DateSerial()和Timeerail(),结果分配给db_date。我们使用字段1过滤记录作为标准以返回大于db_date的日期。

Excel VBA是一个令人兴奋的编程区域。它配备了功能和功能来开发简单高效的代码。AutoFilter是Excel VBA编程的核心。利用它提供对数据的不同视图。MREXCEL在这个VBA课程中显示了一些整洁的技巧,这可以帮助你。一旦您准备好解决更高级的使用,您可以这样做我们的终极VBA课程

Excel VBA的顶级课程

解锁Excel VBA和Excel宏
Leila Gharani.
4.7 (26,951)
畅销书
熟练掌握微软Excel宏和Excel VBA
凯尔·佩
4.5 (11,735)
畅销书
Excel Macros和VBA为初学者
Bluelime学习解决方案
4.3 (19)
热和新的
完整的Web自动化与Excel VBA
丹尼尔强
4.8 (741)
畅销书
Excel VBA宏:超消歧Excel VBA编程
格兰特赌博
4.4 (989)
畅销书
Excel VBA报表自动化要点
本杰明代表团
4.6 (186)
终极Excel VBA.
马克塔尔伯特
4.7 (3,214)
Excel VBA编程 - 完整指南
Boris Paskhaver.
4.7 (3,743)
Microsoft Excel VBA简介
凯尔·佩
4.5 (1161)
Excel Macros&Excel VBA编程为初学者编程
andreas exadaktylos.
4.5 (860)
收视率最高

更多Excel VBA课程

Excel VBA学生还学习

赋予你的团队。引领行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示