|
求教解释字典代码
感谢
楼主
对网友
热情细心指导
现
本菜
珍藏了
狼版多年前的字典+数组代码
由于
基础差
直至今日
还是
如法弄懂(不太明白的代码部份是: Else 后面的循环语句)
故
请指点一下
Sub AAA()
Dim n As Long
Dim A As Long
Dim i As Long
Dim j As Long
Dim k As Long
Dim arr
Dim arr2()
Dim s
Dim temp As String
Dim d As Object
Application.ScreenUpdating = False
n = Sheet1.[a65536].End(xlUp).Row - 1 '原始数据行数
arr = Sheet1.[A2].Resize(n, 27) '赋值给数组arr
ReDim arr2(1 To n, 1 To 27)
s = Array(18, 19, 20, 21, 22, 23, 27) '汇总字段
Set d = CreateObject("scripting.dictionary") '创建字典
For i = 1 To n
temp = arr(i, 9) & vbTab & arr(i, 10) & vbTab & arr(i, 15) & vbTab & arr(i, 17) & vbTab & arr(i, 26) '汇总的根据字段
If Not d.exists(temp) Then '如果尚无记录
k = k + 1 '新数组行索引加1
d.Add temp, k
For A = 1 To 27 '整行复制
arr2(k, A) = arr(i, A)
Next
Else
For j = 0 To UBound(s) '累计汇总字段
arr2(d(temp), s(j)) = arr2(d(temp), s(j)) + arr(i, s(j))
Next
End If
Next
Set d = Nothing '释放字典对象
Sheet2.[b:b,n:n,p:p].NumberFormatLocal = "@"
Sheet2.[A1].Resize(n, 27) = arr2 '新的数据表格式放于sheet2
Application.ScreenUpdating = True '允许刷屏
MsgBox "ok"
End Sub
疑问1:If-----Then------Else 选择语句解释
本菜是这样理解的:If(如果明天,天空下雨)The
本菜不会去郊游
Else(反之)
本菜就去郊游
由上面得知:
本菜不会去郊游
和
本菜就去郊游
是两上独立的,无关连的语句
因而
无法理解狼版实例代码 Else后面的循环语句----数组arr2 怎么能 上下关联?????
疑问2:(也是: Else 后面的循环语句)
是怎样来累加求和的
能否分析解释一下代码
谢谢!!!! |
|