|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 autumnalRain 于 2012-5-18 16:02 编辑
Sub SUMS()
Dim Dic As Object, Dit As Object
Dim Arr, k%, Str$
Set Dic = CreateObject("Scripting.Dictionary")
Arr = Range("B2", [B65536].End(3)(1, 4))
For k = 1 To UBound(Arr)
Str = Arr(k, 1) & Arr(k, 2)
If Not Dic.exists(Str) Then
Dic(Str) = k /这句是什么意思?Dic(Str)表示什么?是不是什么缩略表示法?
Else
Arr(Dic(Str), 3) = Arr(Dic(Str), 3) + Arr(k, 3)
Arr(Dic(Str), 4) = Arr(Dic(Str), 4) + Arr(k, 4)
Arr(k, 1) = ""
End If
Next
Dic.RemoveAll
[B2].Resize(k - 1, 4) = Arr
[B:B].SpecialCells(4).Delete 3
End Sub |
|