在excel中如果用VBA处理数列

在工作表data中A列是时间,B列是ID且重复,C是金额。以id为顺序在report中打出总金额
这是我写的

结果却成了这个,请问我该怎么改

试一下以下代码:

Sub 顺序汇总()
Dim CXdy As Range
Dim d
Dim H As Long
H = Sheets("Date").Range("B" & Rows.Count).End(xlUp).Row
Set d = CreateObject("Scripting.Dictionary")
For Each CXdy In Sheets("Date").Range("B3:A" & H)
    If CXdy.Value <> "" Then
        d(CXdy.Text) = d(CXdy.Text) + CXdy.Offset(0, 1).Value
    End If
Next CXdy
Sheets("Report").Range("a4").Resize(d.Count, 1).Value = Application.Transpose(d.keys)
Sheets("Report").Range("b4").Resize(d.Count, 1).Value = Application.Transpose(d.items)
Set d = Nothing
End Sub

追问

我看是看明白了,可是scriptiong.dictionary我们课上还没学过。。。
如果可以的话能说说我写的上面有什么问题吗

温馨提示:答案为网友推荐,仅供参考