Excel VBA 5.25汇总数据增加来源,一个工作簿N个工作表也不怕

前景提要

上一节呢,我们学习了针对工作簿字段内容不同,顺序也不同的情况下的数据汇总的操作,在那节发表之后呢,也有一些小伙伴私信我说,上一节的代码还存在着一些问题,比方说

1.虽然我们成功的汇总了数据,但是仅仅是针对一个工作簿有一个工作表的情况下汇总的,如果一个工作簿有多个工作表,这个代码还需要在扩展下

2.虽然成功的汇总了数据,但是很明显,数据是汇总了,但是一眼看下去,并不知道数据是哪里来的,后期校对数据的话,也非常的头疼。

仔细想想,大家说的还非常有道理的,那么针对上面的两个问题呢,我们今天就来继续完善下

最终实现的效果是:

1.增加针对多工作表的汇总

2.在汇总的数据中,增加数据来源,方便后期的校对

场景说明

OK,既然已经有了目标了,那就很好办了

直接看看怎么实现

第二点,增加数据来源非常简单,我们在最终写入数据的时候,我们在增加两列,分别写入工作簿的名称和工作表的名称即可。

第一点,针对多个工作表的数据汇总,那么就是要遍历循环工作表了。

这个是我们后面第7章的重点。

先来说下,工作表的遍历,其实和工作簿的遍历一样,都是利用for each循环就可以实现了。

非常的简单

那么,直接上代码吧。

代码区

Sub test24()

Application.DisplayAlerts = False

Dim sth As Worksheet, sth1 As Worksheet, rng1 As Range, rng As Range, sbook As Workbook, sb As Workbook, arr, arr1, arrt()

Set sbook = ThisWorkbook

pathn = ThisWorkbook.Path

Set sth1 = ActiveSheet

Set rng1 = Application.InputBox("请选择表头区域", "表头区域的确认", , , , , , 8)

arr1 = rng1

len1 = UBound(arr1, 2)

f = Dir(pathn & "\")

Do While f <> ""

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

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

For Each sb In Workbooks

If sb.Name = f Then

GoTo line

打开APP阅读更多精彩内容