1. 经常我们会需要将一个工作簿中所有子表里满足某些条件的行或列进行筛选汇总到一个新的表格里,如果靠人力去逐条筛查,表格数据少还可以接受,但是数据表多了之后显然不太现实。这里就给大家提供一种可以进行快速汇总的方法。如果你是VBA大神,直接看代码部分就行。如果基础比较弱,可以跟着一起尝试做一遍。首先可以试着做一个样表进行试验。表格演示提供大家一个演示:
  2. 根据样表大家可以复制出多几个类似的样表,那么关键问题来了,如何对这些格式相同的子表进行筛选汇总呢。要解决这个问题,首先需要确定你要筛选的条件依据,本例中选择延期天数和状态进行筛选。如下
If sh.Cells(x, 10) >= -1 And sh.Cells(x, 10) <> "" And sh.Cells(x, 11) <> "关闭" ThenSet CopyRng = sh.Range(sh.Rows(x), sh.Rows(x))

3.当然我们最后想要的是将所有的子表中满足条件的行全部汇总到提醒表汇总起来。那么为了能实现遍历表格的子表,可以使用新增名称管理器的方法设定数据引用位置= GET.WORKBOOK(1),新增名称管理器的方法可以自行上网查询。获取到字表名称后就可以根据表名利用对于循环进行遍历所有表格,然后嵌套第二步的判断条件,实现对所有的表格进行筛选。为了方便,直接将所有表格按序号进行命名。

For Each sh In Sheets(Array("1.","2.","3."))firstblankrow = sh.Range("B1").End(xlDown).Row - 1StartRow = 2If firstblankrow > 0 And firstblankrow > StartRow ThenFor x = 2 To firstblankrow + 1If sh.Cells(x, 10) >= -1 And sh.Cells(x, 10) <> "" And sh.Cells(x, 11) <> "关闭" ThenSet CopyRng = sh.Range(sh.Rows(x), sh.Rows(x))
  1. Ok 到此就可以基本实现所有功能。附上完整代码供参考:
Private Sub Worksheet_Activate()Dim sh As WorksheetDim DeSh As WorksheetDim x As IntegerDim StartRow As LongDim Last As LongDim shLast As LongDim firstblankrow As LongDim CopyRng As RangeOn Error Resume NextApplication.ScreenUpdating = FalseApplication.EnableEvents = FalseApplication.DisplayAlerts = FalseSet DeSh = MeLast = LastRow(DeSh)If Last >= 4 ThenRows("5:" & Last).DeleteEnd IfLast = 4For Each sh In Sheets(Array("1.","2.","3."))firstblankrow = sh.Range("B1").End(xlDown).Row - 1StartRow = 2If firstblankrow > 0 And firstblankrow > StartRow ThenFor x = 2 To firstblankrow + 1If sh.Cells(x, 10) >= -1 And sh.Cells(x, 10) <> "" And sh.Cells(x, 11) <> "关闭" ThenSet CopyRng = sh.Range(sh.Rows(x), sh.Rows(x))CopyRng.CopyWith DeSh.Cells(Last + 1, "A").PasteSpecial xlPasteValues.PasteSpecial xlPasteFormatsApplication.CutCopyMode = xlCopyDeSh.Cells(Last + 1, LastColumn(DeSh)).SelectDeSh.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & sh.Name & "'" & "!A1", TextToDisplay:=sh.Name '此处是为了方便定位AP创建的超链接到该AP所属的原子表End WithLast = LastRow(DeSh)End If If Next End If Next
Application.ScreenUpdating = TrueApplication.EnableEvents = TrueApplication.DisplayAlerts = TrueExitSub:Application.Goto DeSh.Cells(1)DestSh.Columns.AutoFitApplication.ScreenUpdating = TrueApplication.EnableEvents = TrueApplication.DisplayAlerts = True
End Sub

另外模块中还用到了两个自定义函数,分别用来定位最后一行和最后一列的序号。代码如下:

Function LastRow(sh As Worksheet)On Error Resume NextLastRow = sh.Cells.Find(what:="*", after:=sh.Range("A1"), lookat:=xlPart, LookIn:=xlFormulas, searchorder:=xlByRows, searchdirection:=xlPrevious, MatchCase:=False).RowEnd FunctionFunction LastColumn(sh As Worksheet)On Error Resume NextLastColumn = sh.Cells.Find(what:="*", after:=sh.Range("A1"), lookat:=xlPart, LookIn:=xlFormulas, searchorder:=xlByColumns, searchdirection:=xlPrevious, MatchCase:=False).ColumnEnd Function
  1. 到这里所有的功能就可以实现了,第一次写,不对之处还请包涵。大家可以尝试一下,如果有疑问可以在评论区留言交流,上班族回复不及时还请见谅,谢谢~~

EXCEL 实现所有子表条件筛选汇总到新表相关推荐

  1. python怎么筛选excel数据_Python如何实现excel筛选后生成新表

    Python如何实现excel筛选后生成新表 xlrd对exce进行读操作,xlwt对exce进行写操作. 实现把excel中某些单元格的部分字符作为关键字,进行查找.话不多说直接上代码.# -*- ...

  2. MYSQL复制表结构及数据到新表

    1.复制表结构及数据到新表 select * into 目的数据库名.dbo.目的表名 from 原表名 select * into my0735home.dbo.infoMianTest from ...

  3. Excel 多条件筛选 与 数据透视表 实现

    文章目录 1.多条件筛选数据 2.数据透视表 pivor table 博客测试数据下载链接:https://pan.baidu.com/s/1v47lYXmgvjoBCPOwJ6T1hg 提取码:97 ...

  4. python按某列拆分excel表格_利用Python+Pandas实现从一个excel表中提取列形成新表

    简要 利用python实现把一个工作表中的某些列,和其中单独的一列,提取成为一个个新表. 如图(处理前)蓝色部分是需要保留的列,红色是需要一项一项分出来作为单独表格的列. 其中,第一行的名字是用的回车 ...

  5. oracle中把一个表中的数据更新到新表中

    create table 表名 as select * from 原表名: 这样是把老表的数据及表结构复制到新表.

  6. python按照日期筛选excel_【Python代替Excel】6:按条件筛选

    准备工作:下载示例数据,提取码:tkqn 数据例子数据预览 在Excel中,有个筛选的功能,可以根据条件,去筛选想要的数据,之后想删除.想修改.想添加文字,等等都比较方便.在Python中也可以根据条 ...

  7. mysql两个表条件_mysql – 在另一个表中选择具有多个条件的...

    这是我的简化数据库方案 -- ----------------------------------------------------- -- Table `products` -- -------- ...

  8. html5表单实例元素,HTML5新表单元素的图文实例-

    这一篇介绍html5新增的表单元素和表单属性. 首先先说一个html5中表单新增的一个功能,在我们之前的html中,表单元素必须放在form元素所包含的里面,在html5中,可以把他们写在页面上的任何 ...

  9. Excel VBA 多条件筛选及汇总统计

    Excel VBA 多条件筛选 AdvancedFilter 汇总统计 sumproduct Range与Array交换 在日常工作中,面对Excel表格数据,为了分类进行统计,通过对表格数据筛选获取 ...

最新文章

  1. excel取整函数_Excel中的这些烧脑问题,你遇到过几种?
  2. nginx在linux自动启动脚本,nginx的自动启动脚本
  3. c语言提取七位数讲解,C语言-体育彩票7位数,感受身中500万的fell
  4. What's New in C# 6.0(转)
  5. html5 jpg转webp格式转换,JPEG和WebP格式图片的差别
  6. C语言基础教程之递归
  7. 每周荐书:分布式、深度学习算法、iOS(评论送书)
  8. Linux操作系统[下载安装][命令][工具使用]
  9. 域名如何转移?域名转移流程有哪些?
  10. 微信小程序switch组件尺寸控制
  11. 统计学理论—方差分析
  12. Python学习笔记--字符串及其常见操作
  13. 华为设备的安全配置console及telnet
  14. 使用HadoopDruidIndexer向Druid集群中加载批量数据-Batch Data Ingestion
  15. RV-LINK:将 GD32VF103C-START 开发板变成 RISCV-V 仿真器
  16. Java使用Netty实现Modbus-RTU通信协议
  17. 个人博客开发之blog-api项目统一结果集api封装
  18. A股股本结构历史数据查询Web API使用方法
  19. mysql查看用户购买_mysql查询——购买所有产品的客户
  20. MAML:User Diverse Preference Modeling by Multimodal AttentiveMetric Learning

热门文章

  1. 汇编语言(王爽)实验十 编写子程序
  2. js 关于 toFixed 问题的总结
  3. Flutter 绘制 3D 效果动画
  4. Pintos Project1:Thread 实验报告
  5. 基于MDKA5D31-EK_T70开发板的QT示例-demo08:TCP通讯
  6. 春节出境中国游客可在174个国家和地区使用银联卡
  7. linux向iphone传视频文件失败,导入视频文件失败解决方法
  8. [Python]二叉树中序遍历代码以及思路
  9. 使用canvas画房子,算出鼠标点击的位置在不在矩形内
  10. vivo 上架 app 时遇到的问题