VBA 5.21活用字典 轻松应对字段不同的工作簿求和

前景提要

上两节的时候,我们学习了利用字典+数组的方法来实现工作簿的数据求和操作,通过这个方法,我们可以直接针对工作簿的内容进行计算,而不需要先合并工作簿,然后在针对合并后的工作簿展开计算了,这样可以节省我们不少的时间

而之前两节我们的方法都是字典搭配数组的方法,同时进行的,效果也是非常的不错。

今天我们在针对小伙伴提出的另外一个场景来进行处理,今天小伙伴给出的场景是,工作簿的字段不同的求和。

场景模拟

比方说这样的场景,这是字段不同的场景,其实我们之前也是学习过类似的场景的处理,在之前我们是使用数组的方式来实现了,借用了数组的MATCH方法

那么今天我们来换种方法,我们用纯字典的方法来实现这样的效果

这样大家面对这个场景的时候,就可以选择使用两种方法来进行处理了。

灵活性和通用性就更高了。

代码区

Sub test()

Dim zd As Object, pathn, arr(), arr1, sgm(), zxl(), brr()

pathn = ThisWorkbook.Path

Set zd = CreateObject("scripting.dictionary")

f = Dir(pathn & "\")

k = 0

k1 = 0

Do While f <> ""

If f <> "5-9-3.xlsm" Then

Workbooks.Open pathn & "\" & f

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

arr1 = ActiveSheet.UsedRange

For i = 2 To l

For j = 2 To UBound(arr1, 2)

s = Cells(i, 1) & arr1(1, j)

If zd.Exists(s) Then

zd(s) = zd(s) + Cells(i, j)

Else

zd(s) = Cells(i, j)

打开APP阅读更多精彩内容