基本上我有一个带有影响表的数字数据表
A1 1
A1 5
A1 6
B1 2
B1 3
C1 6
C1 8
我想要的结果是
A1 1 A1 12
A1 5 B1 5
A1 6 C1 14
B1 2
B1 3
C1 6
C1 8
我以为我可以用词典来做,问题是我想不通,我已经研究了一个星期,但我所能理解的却没有。
我现在写了这段代码:
Dim k As String
Dim d As Object
For each k in d.keys
lastRow=Sheets("Sheet2").Cells(Rows.Count,1).End(x1Up).Row
For x=2 to lastRow
If Cells(x,"A")=k Then
'basically sum column B and print key + total
End If
Next x
谢谢!
答案 0 :(得分:1)
使用字典是一种快速的方法,特别是如果您首先将数据加载到数组中。
Option Explicit
Public Sub Test()
Dim arr(), i As Long, dict As Object
Set dict = CreateObject("Scripting.Dictionary")
arr = [A1:B7].Value
For i = LBound(arr, 1) To UBound(arr, 1)
dict(arr(i, 1)) = dict(arr(i, 1)) + arr(i, 2)
Next
[C1].Resize(dict.Count, 1) = Application.Transpose(dict.KEYS)
[D1].Resize(dict.Count, 1) = Application.Transpose(dict.items)
End Sub