目录

示例:

实现代码1

行和列的隐藏

实例代码2

单元格对象的AutoFilter(自动筛选)方法

实现代码3

单元格对象的AdvancedFilter(高级筛选)方法


​​​​​​​

示例:

在Excel中,经常使用自动筛选功能筛选数据,将某些条件的数据显示而隐藏其他数据。如图所示,该表为某公司商品出口数据记录。现希望筛选出销往印度尼西亚的所有销售记录,并隐藏其他销售记录,该如何用VBA实现?

日期 产销国 地区 出口金额
2010/1/1 韩国 A 18879
2010/1/1 台湾省 A 17245
2010/1/2 土耳其 A 10500
2010/1/2 韩国 A 367
2010/1/5 印度尼西亚 A 33050
2010/1/7 印度尼西亚 A 22150
2010/1/7 印度尼西亚 A 20832
2010/1/8 香港 A 8216
2010/1/9 土耳其 A 19583
2010/1/9 突尼斯 AF 25200
2010/1/9 越南 A 51920
2010/1/10 俄罗斯联邦 E 37840
2010/1/11 台湾省 A 32032
2010/1/11 菲律宾 A 14586
2010/1/12 香港 A 6723
2010/1/13 韩国 A 19460
2010/1/13 台湾省 A 178507
2010/1/13 越南 A 6580
2010/1/13 荷兰 E 99084
2010/1/14 阿根廷 SA 12000
2010/1/15 南非 AF 22700
2010/1/16 泰国 A 23065
2010/1/16 加拿大 NA 20000
2010/1/17 澳大利亚 A 3783
2010/1/18 越南 A 1100
2010/1/19 比利时 E 54180
2010/1/19 叙利亚 A 6800
2010/1/20 马来西亚 A 16211
2010/1/20 阿拉伯联合酋长国 A 11120
2010/1/20 澳大利亚 A 9219
2010/1/21 泰国 A 5300
2010/1/21 埃及 AF 72260
2010/1/22 沙特阿拉伯 A 16980
2010/1/22 香港 A 2190
2010/1/22 巴西 SA 92340
2010/1/23 俄罗斯联邦 E 37180
2010/1/24 泰国 A 22800
2010/1/24 日本 A 21800
2010/1/24 韩国 A 152210
2010/1/25 法国 E 47103
2010/1/25 波兰 E 21062
2010/1/27 澳大利亚 A 23180
2010/1/27 阿尔及利亚 AF 36200
2010/1/27 英国 E 27210
2010/1/28 新加坡 A 22400
2010/1/28 委内瑞拉 SA 42140
2010/1/28 印度 A 15501
2010/1/28 日本 A 12650
2010/1/29 韩国 A 24766
2010/1/29 泰国 A 23148
2010/1/30 墨西哥 SA 36260
2010/1/30 香港 A 2125
2010/1/31 土耳其 A 12090
2010/1/31 韩国 A 21180
2010/1/31 印度尼西亚 A 22100
2010/1/31 印度尼西亚 A 7500
2010/1/31 南非 AF 21499
2010/1/31 俄罗斯联邦 E 34620

实现代码1

Option ExplicitSub 按条件隐藏数据行()Dim Rng As RangeFor Each Rng In Range(Range("B2"), Cells(Rows.Count, "B").End(xlUp))'判断是否为印度尼西亚If Rng.Value <> "印度尼西亚" ThenRng.EntireRow.Hidden = TrueEnd IfNext
End Sub

行和列的隐藏

Hidden属性是单元格对象(Range)的一个属性,该属性表示单元格是否隐藏,其值可为True或者False,当为True时,表示隐藏。
    Hidden属性仅能用于整行或整列的单元格区域,而不能用作某一个单元格。如本例中,当找到满足条件的数据单元格时,需要对该单元格所在的整行设置Hidden属性为True。若本例直接使用代码Rng. Hidden=True,则会出现如图所示的错误。

实例代码2

Sub 按条件隐藏数据行2()'criteria1,最后一个字符是数字1,不是字母lRange("A1").AutoFilter Field:=2, Criteria1:="印度尼西亚"
End Sub

单元格对象的AutoFilter(自动筛选)方法

自动筛选功能是Excel常用的一个重要功能之一,利用该功能可以方便地筛选并隐藏数据。在VBA中对应的方法为AutoFilter方法,该方法的语法为

Rng.AutoFilter [Field],[Criteria1],[Operator],[Criteria2],[VisibleDropDown]

其中,Rng为单元格,使用AutoFilter方法只需指明数据区域的任何一个单元格即可,因而本例使用A1单元格。

  • 参数Field为字段的序号,即表示该数据区域第几列为条件进行筛选。本例中需要以产销国为筛选条件,而该列为该数据区域的第2列,因而该参数设置为2。
  • 参数Criteria1和Criteria2为筛选的条件。本例只需要一个条件,筛选值为“印度尼西亚”的数据,因而可以直接设置Criterial为“印度尼西亚”。当筛选条件不等于“印度尼西亚”时,使用Criteria1:="印度尼西亚"
  • 参数Operator表示Criteria1和Criteria2的筛选条件操作符,可以为表中的任一常量。

表  AutoFilter方法的Operator参数

常  量

说  明

xlAnd

1

Criteria1和Citeiia2的逻辑与

xlOr

2

Criteria1和criteria2的逻辑或

xlFilterCellColor

8

单元格颜色参数Criteria1的值为指定的颜色值)

xlFilterDynamic

11

动态筛选

xlFilterFontColor

9

字体颜色(参数Criteria1的值为指定的颜色值)

xlFilterIcon

10

筛选图标

xlFilterValues

7

筛选值

xlBottom10Items

4

显示最低值项(参数Criteria1的值为指定的项数)

xlBottom10Percent

6

显示最低值项(参数Criteria1的值为指定的百分数)

xlToplOItems

3

显示最高值项(参数Criteria1的值为指定的项数)

xlTop1OPercent

5

显示最高值项(参数Criteria1的值为指定的百分数)

  • 参数VisibleDropDown为是否显示下拉箭头,为True时表示显示,为False时表示不显示。

​​​​​​​实现代码3

Sub 按条件隐藏数据行3()'创建临时条件区域Range("H1").Value = "产销国"Range("H2").Value = "印度尼西亚"'高级筛选Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("H1:H2"), unique:=False'清除临时条件区域Range("H1:H2").Clear
End Sub

单元格对象的AdvancedFilter(高级筛选)方法

使用按条件的高级筛选功能时,需要创建一个条件区域。因而本例使用VBA首先创建一个临时的条件区域,高级筛选执行完成之后,删除该区域。该使用临时辅助区域的方法在VBA开发中是经常用到的。AdvancedFilter(高级筛选)方法对应工作表中高级筛选的基本操作,其语法为

 Rng.AdvancedFilter [Action ],[CriteriaRange],[CopyToRange],[Unique]

其中,Rng为进行高级筛选的区域,该区域为完整的数据区域。

  • 参数Action为筛选的方式,xIFilterCopy表示将筛选结果复制到新区域,xIFilterInPlace表示在数据区域原地筛选。
  • 参数CriteriaRange表示条件区域。
  • 参数CopyToRange表示复制到的区域,该参数只有当Action参数设置为xIFilterCopy时才有效。
  • 参数Unique表示是否筛选不重复的记录,当为True时,表示筛选不重复记录,为False时表示筛选所有满足条件的记录。

Excel 2010 VBA 入门 039 按条件隐藏数据行相关推荐

  1. Excel 2010 VBA 入门 037 获取最后一行数据的行数

    目录 示例: 实现代码1 使用Find方法查找最后的单元格 Find方法按行查找和按列查找的区别 实现代码2 获取工作表总行数 实现代码3 单元格对象的End属性 End属性的局限性 其他获取最后数据 ...

  2. Excel 2010 VBA 入门 105 将工作表数据批量导出为图片

    目录 示例 代码 Copy. Cut和Paste方法 图表对象(Chart)的Export方法 利用PPT导出图片 示例 为防止数据的更改或者盗用,将所选的数据区域导出为图片进行展示. 代码 在Exc ...

  3. Excel 2010 VBA 入门 034 创建图片批注

    目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...

  4. Excel 2010 VBA 入门 130 利用窗体创建实时筛选浮动工具栏

    目录 题 码 DefauIt和CanceI按钮 提高单元格隐藏的速度 自制浮动工具栏 动态显示与隐藏窗体 题 如图所示,该表为某单位员工档案.现希望制作一个包含有文本框的浮动工具栏,当在文本框中输入字 ...

  5. Excel 2010 VBA 入门 098 导入Access数据库的数据

    示例 Access是微软Office组件的数据库软件,使用它可以进行简单的数据库软件的开发.但Access的图表功能和数据分析功能不如Excel强大,常用的做法可以将Access中的数据导入 Exce ...

  6. Excel 2010 VBA 入门 062 跨表数据查询

    目录 示例 实现代码 跨表操作单元格 连续查找功能 示例 如图所示,该工作簿中建立"数据表"和"数据查询"表分别用于存储客户信息以及客户信息的查询.现希望在数据 ...

  7. Excel 2010 VBA 入门 063 跨表数据录入

    目录 示例 实现代码 ListObject对象 ListObject对象的表示方法 1.序号表示法 2.名称表示法 ListColumn对象 向ListObject中添加新数据 使用VBA添加List ...

  8. Excel 2010 VBA 入门 001显示开发工具选项卡

    目录 VBA简介 宏简介 显示"开发工具"选项卡 ​ VBA简介 Visual Basic for Application (VBA)是Visual Basic的一种宏语言,是依附 ...

  9. Excel 2010 VBA 入门 086 数据处理之获取交叉查询结果表

    目录 示例 代码 交叉汇总表 建立交叉汇总表的步骤 建立交叉汇总表的优化 示例 如图所示,该表为某公司的销售数据表.现希望建立一个汇总表,按月份和商品名汇总收入,并将月份作为列标题而商品名作为行标题. ...

最新文章

  1. (剑指Offer)面试题10:二进制中1的个数
  2. 【leetcode】1007. Minimum Domino Rotations For Equal Row
  3. C语言 二维数组复制、清零及打印显示
  4. A comparative study of various methods of bearing faults diagnosis using the CWRU data.-学习笔记
  5. linux配置ip地址 suse_suse linux中为单网卡配置多IP的方法
  6. html设置div页面最底,使用css让大图片不超过网页宽度
  7. luna16标签数据里的xyz,以及CT的dicom.ImagePositionPatient里的三个值分别代表哪些轴的初始点
  8. 烂泥:学习ssh之ssh密钥随身携带
  9. sqlplus 编辑的小技巧
  10. Jetpack来了:走近Google标准应用架构
  11. 《Java程序设计教程 实验手册》pdf 附下载链接
  12. RINEX 3.02 版本导航信息文件格式说明
  13. python api调用 验证码_Python语言调用创蓝253短信验证码API文档
  14. java类加载机制、类加载器、自定义类加载器
  15. android 键盘开发demo,Android自定义键盘之中文键盘demo
  16. Visual Basic 6.0编写简单网页浏览器
  17. unsupported_grant_type
  18. Flutter Web(一)新建项目和登录页
  19. [管理故事]:路遥知马力,日久见人心。
  20. PS快捷键大全 所有快捷键都在这里 新手必备

热门文章

  1. LC振荡电路物理分析
  2. Outlook2013/2016中的Gmail设置
  3. mysqldump使用简介
  4. TunePat Amazon Video Downloader for Mac(专业亚马逊视频下载器)
  5. 内部招聘系统开发心得
  6. 【Spring Security入门】06-QQ登录实现
  7. 批量分析申通快递物流,并筛选出两天未更新的单号
  8. CAP, BASE, 最终一致性和五分钟原则
  9. 如何重置Django的Admin密码
  10. jsp+ssm+mysql实现的校园二手市场交易平台源码