当前位置: 首页 > news >正文

在Excel中如何快速筛选非特定颜色

Excel中的自动筛选是个非常强大的工具,不仅可以筛选内容,而且可以筛选颜色,例如筛选A列红色单元格。但是有时希望筛选除了红色之外的单元格(下图右侧所示),其他单元格的填充色不固定,有几种颜色也不固定,那么内置的自动筛选就无能为力,使用VBA还是可以实现的。

在这里插入图片描述

示例代码如下。

Sub Demo()Dim helpRng As Range, visRng As RangeDim lastRow As Long, oSht As WorksheetSet oSht = Sheets("Sheet1")If oSht.AutoFilterMode Then oSht.AutoFilterMode = FalselastRow = oSht.Cells(oSht.Rows.Count, 1).End(xlUp).RowWith oSht.Range("A1:E" & lastRow).AutoFilter Field:=1, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterCellColorSet helpRng = .Columns(.Columns.Count).Offset(, 1)helpRng.EntireColumn.Hidden = FalseOn Error Resume NextSet visRng = helpRng.SpecialCells(xlCellTypeVisible)On Error GoTo 0If Not visRng Is Nothing ThenoSht.AutoFilterMode = FalsehelpRng.ClearvisRng.Value = 1helpRng.AutoFilter Field:=1, Criteria1:=""helpRng.EntireColumn.Hidden = TrueEnd IfEnd With
End Sub

【代码解析】
第4行代码获取工作表对象。
第5行代码如何工作表已经启用自动筛选,请取消当前的自动筛选。
第6行代码获取A列最后数据所在行号。
第7行代码设置表格范围,如果已经创建Excel表格,那么可以直接使用ListObject对象。
第8行代码在第1列应用自动筛选,筛选颜色为红色。
第9行代码在表格右侧添加辅助列。
第10行代码确保辅助类处于显示状态(没有被隐藏),否则第12行无法获取相应的单元格。
第11行代码忽略运行时错误。
第12行代码获取辅助列的可见单元格。
第13行代码恢复系统错误处理机制。
第14行代码如果可见单元格不为空,说明具备红色单元格。
第14行代码取消自动筛选。
第16行代码清空辅助列。
第17行代码将可见单元格(即红色所在行)赋值为1。
第18行代码启用自动筛选,筛选辅助列为空的单元格(即:非红色所在行)。
第19行代码隐藏辅助列。


希望大家不用谈辅助列色变,认为使用辅助类的解决方案,都是很弱智的实现方法,实际上合理使用辅助列,可以更好的利用Excel内置功能,在数据量比较大的应用场景中,这通常比单纯的VBA实现方案更高效,总之,效率为王,英雄不问出身。

http://www.lryc.cn/news/472117.html

相关文章:

  • kotlin定时器和主线程定时器
  • vscode不能执行vue命令/ vue : 无法加载文件
  • 1.4 STL C++面试问题
  • Bash、sh 和 Shell都弄混了?
  • 架构师备考专栏-导航页
  • STM32-Cube定时器TIM
  • Webpack 是什么? 解决了什么问题? 核心流程是什么?
  • Jenkins面试整理-Jenkins 的主要用途是什么?
  • Linux下使用C/C++进行UDP网络编程
  • 【JavaEE初阶】网络原理—关于TCP协议值滑动窗口与流量控制,进来看看吧!!!
  • 无人机避障——使用三维PCD点云生成的2D栅格地图PGM做路径规划
  • supermall项目上拉加载bug分析
  • 【linux网络编程】| socket套接字 | 实现UDP协议聊天室
  • 第二届开放原子大赛-开源工业软件算法集成大赛即将启动!
  • PXC集群(Percona XtraDB Cluster )
  • 分布式光伏是什么意思?如何高效管理?
  • 提问GPT
  • 李飞飞团队新突破:低成本高泛化机器人训练法,零样本迁移成功率90%!
  • PHP内存马:不死马
  • 【python】OpenCV—Connected Components
  • 【优选算法篇】前缀之序,后缀之章:于数列深处邂逅算法的光与影
  • win10 更新npm 和 node
  • 搜索引擎算法更新对网站优化的影响与应对策略
  • 使用 Q3D 计算芯片引线的 AC 和 DC R 和 L
  • 前端_008_Vite
  • ssm007亚盛汽车配件销售业绩管理统(论文+源码)_kaic
  • 如何使用python完成时间序列的数据分析?
  • 数字ic设计,Windows/Linux系统,其他相关领域,软件安装包(matlab、vivado、modelsim。。。)
  • SD-WAN分布式组网:构建高效、灵活的企业网络架构
  • Task :prepareKotlinBuildScriptModel UP-TO-DATE,编译卡在这里不动或报错