Excel VBA 5.23 空行+合计+页尾 干扰源颇多的工作簿 如何汇总

前景提要

最近我们都在学习工作簿的汇总和合并操作,不过可能是因为我的大脑细胞比较有限,所涉及的场景比较少,小伙伴们也是提出了一些新的场景要求,所以,这里我们作为新番的形式,和大家分享。

好,进入正题,今天我们要合并的工作簿的场景呢,是这样的

有空行,又有合计字段,还有最后还有合并单元格的页尾。

当然我们并不需要合并这些空行,页尾了,我们需要的仅仅是中间的数据部分,那么面对今天这样的场景,我们要如何合并呢?

场景说明

既然已经有了空行,那么我们这里肯定不能使用Useadrange了,因为这个时候的使用区域,明显包含了空行和页尾的那些部分

而我们需要的仅仅是中间的核心数据。

不过我们可以观察到,数据中既然有合计字段,合计字段是数据源和其他的页尾标识区域的分水岭

发现了这一点,那么问题就简单了很多了,我们只需要获得合计这个字段所在的单元格行数,然后就可以将整个数据源一分为二了。

一分为二之后呢?

我们就会得到两个区域,从上图中可以看到,有些区域是有空行的,那么这样的情况下,又要如何操作呢?

so easy!

你获得A列的最后一个非空单元格不就可以了吗?如果非空单元格的行数大于合计的行数,那就是说明有空格了。

OK,有了思路,那么直接看代码

代码区

Sub test23()

Dim sth As Worksheet, rng As Range, urng As Range, sbook As Workbook, sb As Workbook

Set sbook = ThisWorkbook

pathn = ThisWorkbook.Path

f = Dir(pathn & "\")

Do While f <> ""

l1 = Cells(Rows.Count, 1).End(xlUp).Row

If f <> "5-23.xlsm" Then

For Each sb In Workbooks

If sb.Name = f Then

GoTo line

打开APP阅读更多精彩内容