|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 autumnalRain 于 2014-1-21 13:32 编辑
蓝色幻想老师的字典下棋法中多列汇总时有这样的例子,现代码有不明白请老师们指导:
数据区域如下:
要实现结果如下:
蓝色老师代码如下:
===================================================================================================================================
Option Explicit
Sub 下棋法之多列汇总()
Dim 棋盘(1 To 10000, 1 To 3)
Dim 行数
Dim arr, x, k
Dim d As New Dictionary
arr = Range("a2:c" & Range("a65536").End(xlUp).Row)
For x = 1 To UBound(arr)
If d.Exists(arr(x, 1)) Then
行数 = d(arr(x, 1))
Debug.Print 行数
棋盘(行数, 2) = 棋盘(行数, 2) + arr(x, 2)
棋盘(行数, 3) = 棋盘(行数, 3) + arr(x, 3)
Else
k = k + 1
d(arr(x, 1)) = k
棋盘(k, 1) = arr(x, 1)
棋盘(k, 2) = arr(x, 2)
棋盘(k, 3) = arr(x, 3)
End If
Next x
Range("f2").Resize(k, 3) = 棋盘
End Sub
=====================================================================================================================================
请教问题:
代码中行数=d(arr(x, 1)),这里的d(arr(x, 1))是什么?是d.item(arr(x, 1))的缩写吗?当X=2时, 行数 = d(arr(x, 1))=1,此处的1是如何得来的?请高手帮助解释!是X=1时 ELSE中d(arr(x, 1)) 的值吗?
理解了,是d.item(key)=newitem用法
|
|