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