|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
附件发不来,只能发代码了
Sub 下棋法之多列汇总()
Dim d
Set d = CreateObject("scripting.dictionary")
Dim 棋盘(1 To 10000, 1 To 3)
Dim 行数
'h记录棋盘的行数
Dim arr, x
'arr装入源数据,x为arr的行数
Dim k
'k用于记录arr不重复值的行数,然后在棋盘中读入新数据
'不重复的数据会直接加到棋盘数据,不必格外记录
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))
棋盘(行数, 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("G2").Resize(k, 3) = 棋盘
End Sub
|
|