前景提要
上两节的时候,我们学习了利用字典+数组的方法来实现工作簿的数据求和操作,通过这个方法,我们可以直接针对工作簿的内容进行计算,而不需要先合并工作簿,然后在针对合并后的工作簿展开计算了,这样可以节省我们不少的时间
而之前两节我们的方法都是字典搭配数组的方法,同时进行的,效果也是非常的不错。
今天我们在针对小伙伴提出的另外一个场景来进行处理,今天小伙伴给出的场景是,工作簿的字段不同的求和。
场景模拟
比方说这样的场景,这是字段不同的场景,其实我们之前也是学习过类似的场景的处理,在之前我们是使用数组的方式来实现了,借用了数组的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)