Excel中VBA编程学习笔记(十二)--自动筛选
Range.AutoFIlter方法可以进行自动筛选,语法结构如下:
Range.AutoFilter(Field,Criteria1Operator,Criteria2,VIsibleDropDown);
参数说明:
Field可选,筛按33选的字段的整型偏移量,;例如筛选A列的字段则取值1,筛选D列的字段则取值4;
Criteria1,可选,字符串类型。筛选条件可以使用“=”,“<”,“>”,“<>”等运算符;
Operator,可选,指定筛选类型。设置为xlAutoFileterOpearator枚举中的常量之一,如下表所示:
名称 |
说明 |
xlAnd |
条件1和条件2的逻辑与 |
xlBottom10Items |
显示最低值项(条件1中指定的项数) |
xlBottom10Percent |
显示最低值项(条件1中指定的百分数) |
xlFilterCellColor |
显示单元格颜色 |
xlFilterDynamic |
动态筛选 |
xlFilterFontColor |
字体颜色 |
xlFilterIcon |
筛选图标 |
xlFIlterValues |
筛选值 |
xlOr |
条件1与条件2的逻辑或 |
xlTop10Items |
显示最高值项(条件1中指定的项数) |
xlTop10Percent |
显示最高值项(条件1中指定的百分数) |
Critera2,可选,第二个筛选条件,与Criteria1和Operator一起组成复合筛选条件;
VIsibleDropDown,可选,如果设置为true,则显示筛选字段的自动筛下拉箭头。
下表为例1到例5使用的数据
省份 |
年份 |
产量 |
湖北 |
2006 |
20000 |
广州 |
2012 |
12000 |
广东 |
2011 |
23000 |
山西 |
2006 |
8000 |
江西 |
2009 |
7900 |
湖南 |
2006 |
3000 |
湖北 |
2013 |
90002 |
广东 |
2007 |
12090 |
河南 |
2008 |
2230 |
【例1】筛选省份为湖北的数据
Worksheets(1).Select
If ActiveSheet.AutoFilterMode = False Then '检查是否开启自动筛选
Range("A1:B9").AutoFilter '没有开启的话则开启自动筛选
End If
ActiveSheet.Range("A1:B9").AutoFilter field:=1, Criteria1:="湖北"
【例2】筛选省份为“湖北”且年份为2013的数据
Worksheets(1).Select
If ActiveSheet.AutoFilterMode = False Then '检查是否开启自动筛选
Range("A:B").AutoFilter '没有开启的话则开启自动筛选
End If
ActiveSheet.Range("A:B").AutoFilter field:=1, Criteria1:="湖北"
ActiveSheet.Range("A:B").AutoFilter field:=2, Criteria1:="2013", Operator:=xlAnd
【例3】筛选省份为“湖北”或“广东”的数据
ActiveSheet.Range("A:B").AutoFilter field:=1, Criteria1:="湖北", Operator:=xlOr, Criteria2:="广东"
【例4】筛选“产量”字段高出平均值的所有记录
ActiveSheet.Range("A1:C10").AutoFilter field:=3, Criteria1:=xlfilteraboveaverage, Operator:=xlfilterdynamic
【例5】筛选“产量”字体设置为红色的记录
ActiveSheet.Range("A1:C10").AutoFilter field:=3, Criteria1:=RGB(255, 0, 0), Operator:=xlfilterfoncolor
下表为例6到例8使用的数据
【例6】筛选姓“郑”且姓名为两个字的记录
ActiveSheet.Range("A1:C10").AutoFilter field:=1, Criteria1:="=??", Operator:=xlAnd, Criteria2:="=郑*"
【例7】筛选不姓“郑”且姓名为两个字的记录
ActiveSheet.Range("A1:C10").AutoFilter field:=1, Criteria1:="=??", Operator:=xlAnd, Criteria2:="<>郑*"
【例8】清除筛选条件
ActiveSheet.ShowAllData
注意:ActiveSheet.ShowAllData必须在工作表开启了自动筛选且存在筛选条件时使用,否则会报错.
【例9】使用高级筛选,选出不重复的记录并拷贝到另外一张工作表
Sub test()
Worksheets("AVIC384").Range("D:D").AdvancedFilter _
Action:=xlFilterCopy, unique:=True, _
copyTorange:=Worksheets("tools").Range("H1")
End Sub
Excel中VBA编程学习笔记(十二)--自动筛选相关推荐
- Excel中VBA编程学习笔记(一)
1.注释及编码规则 注释: 单引号:可以位于句子结尾或者单独一行: Rem:单独一行 编码规则: 如果VB中的关键字是由多个英文字母组成,则系统自动将每个单词的首字母转换成大写字母,其余字母一律转换成 ...
- Excel中VBA编程学习笔记(十)--单元格(cell)
1.单元格引用 引用 含义 Range("A1") 单元格A1 Range("A1:B2") A1到B2的单元格区域 Range("C5:D9,G9: ...
- Excel中VBA编程学习笔记(十一)--正则表达式
在VBA中使用正则表达式受限需要引用Microsoft VBScript Regular Expressions 5.5类库.在VBA界面,"工具"-->"引用&q ...
- Excel中VBA编程学习笔记(七)--窗口应用(WINDOW)
1.修改并获取当前窗口标题 Private Sub test() Windows(1).Caption = "My Excel" MsgBox ("当前窗口标题:&quo ...
- 吴恩达《机器学习》学习笔记十二——机器学习系统
吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
- ROS学习笔记十二:使用roswtf
ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...
- Polyworks脚本开发学习笔记(十二)-输出和读取文本文件
Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...
- OpenCV学习笔记(十二)——图像分割与提取
在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...
最新文章
- linux下mysql修改字符集,远程连接
- 华硕飞行堡垒开启虚拟化
- 【知识发现】python开源哈夫曼编码库huffman
- 十九、面试必考,Java中的this关键字
- mybatis--MapperProxy事务
- matlab学习笔记之常用命令(一)
- PULSE:一种基于隐式空间的图像超分辨率算法
- C#开发的3D图表控件,适用于winform项目
- 临床试验中样本量确定的统计学考虑
- JavaRSAJS加密解密(整合版,仅供自己参考)
- DRM dumb,prime介绍
- Web导出Excel总结
- 第五届蓝桥杯 软件类省赛真题 第八题:兰顿蚂蚁
- 【Maxent物种分布模型】气候变化对响尾蛇地理分布的影响
- 计算机桌面怎么能添加文字,怎么在桌面上添加文字便签
- 现代数据库及大数据管理—常见问题与技术归纳
- Prometheus部署
- 给服务器安装debian系统,安装Debian 10 Buster的方法
- MySQL_15_MySQL底层SQL查询成本计算
- USACO 2.1 健康的荷斯坦奶牛 Healthy Holsteins