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

使用VBA实现快速多重数据筛选

实例需求:Excel数据表如下图所示,部分无关数据列已经隐藏。

在这里插入图片描述

筛选规则:

  • 条件1:Col19 列为Pass
  • 条件2:Col7,Col8,Col9,Col10不全部为零
  • 提取满足上述两个条件的 Col1 列的数据(即上图中黄色单元格)
Sub Demo()Dim srcSht As Worksheet: Set srcSht = ActiveSheetDim arr: arr = srcSht.Range("A1").CurrentRegion.ValueDim brr: ReDim brr(1 To UBound(arr), 0)Dim i As Long, iR As LongFor i = LBound(arr) + 1 To UBound(arr)If arr(i, 19) = "Pass" ThenIf arr(i, 7) & arr(i, 8) & arr(i, 9) & arr(i, 10) <> "0000" TheniR = iR + 1brr(iR, 0) = arr(i, 1)End IfEnd IfNextIf iR > 0 ThenDim desSht As WorksheetSet desSht = Sheets.Add(After:=srcSht)desSht.Range("A1").Resize(iR).Value = brrEnd If
End Sub

【代码解析】
第2行代码获取活动工作表对象。
第3行代码将数据表加载到数组中。
第4行代码声明数组,用于保存结果。
第6-13行代码循环数据表。
第7行代码判断第19列是否符合筛选条件1。
第8行代码判断第7、8、9、10列是否符合筛选条件2。
如果两个筛选条件都满足,那么第9行代码累加1。
第10行代码提取第1列的值,保存到结果数组中。
第14行代码判断是否有符合筛选条件的数据。
第16行代码创建新工作表。
第17行代码将筛选结果写入新建工作表中。


第8行代码也可以使用如下代码行实现。

If arr(i, 7) * arr(i, 8) * arr(i, 9) * arr(i, 10) <> 0 Then
http://www.dtcms.com/a/359614.html

相关文章:

  • Flink部署实战:从入门到优化
  • 第 14 篇:K-Means与聚类思维——当AI在没有“标准答案”的世界里寻宝
  • python实现滤波器的简单案例
  • python如何打开显示svg图片
  • 阿里云-应用实时监控服务 ARMS
  • Unity笔记(九)——画线功能Linerenderer、范围检测、射线检测
  • AFSIM仿真脚本生成(三)脚本解析技术加速验证过程
  • Linux 系统都有哪些
  • HikariCP vs DBCP2 vs Tomcat JDBC:多场景数据库连接池方案对比与实践指南
  • 大模型RAG项目实战:Milvus向量数据库
  • 《SVA断言系统学习之路》【02】并发断言
  • C++11语言(三)
  • 读书笔记共享平台|基于SpringBoot的设计与实现
  • 大模型面试题剖析:PPO 与 GRPO 强化学习算法核心差异解析
  • 从RNN到Transformer
  • 网格图--Day03--网格图DFS--2658. 网格图中鱼的最大数目,1034. 边界着色,1020. 飞地的数量
  • 动规多重背包
  • JSP 输出语法全面解析
  • 深度学习篇---MobileNet
  • Nodejs之HelloWord Hello-Http
  • 电商系统的分布式事务调优
  • MySQL 公用表达式
  • EKS上部署gpu服务利用karpenter实现自动扩缩(s3作为共享存储)
  • Java中,任何方法都有其调用者
  • MySQL面试集合
  • 硬件开发_基于物联网的工厂环境监测系统
  • 从新能源汽车看产品逻辑与认知系统
  • 【MD文本编辑器Typora】实用工具推荐之——轻量级 Markdown 编辑器Typora下载安装使用教程 办公学习神器
  • 【CNB.COOL】智能花卉分类系统 – 部署指北
  • IOT安全学习之IoT_Sec_Tutorial