|
本帖最后由 f8b1987 于 2012-5-8 09:38 编辑
代码见模块“问题代码”。我的目的是从“分表一”提取数据,做成类似sheet3里面的数据透视表效果。但是我写的代码有点小问题,不知道如何处理,请各位支招。
- Sub 求和问题()
- Dim arr, D As Object, sh As Worksheet, ar
- Dim i As Integer, j As Byte, k As Byte
- Set D = CreateObject("scripting.dictionary")
- Set d1 = CreateObject("scripting.dictionary")
- Set d2 = CreateObject("scripting.dictionary")
- arr = Sheet2.Range("a1").CurrentRegion '选定区域装入数组
- For i = 1 To UBound(arr) '循环从数组第1行到数组的最后一行
- D(arr(i, 1) & "|" & arr(i, 2)) = D(arr(i, 1) & "|" & arr(i, 2)) + arr(i, 3)
- d1(arr(i, 1) & "|" & arr(i, 2)) = d1(arr(i, 1) & "|" & arr(i, 2)) + arr(i, 1)
- d2(arr(i, 1) & "|" & arr(i, 2)) = d2(arr(i, 1) & "|" & arr(i, 2)) & arr(i, 2)
- Next i
- Sheet3.Range("a1").Resize(d1.Count, 1) = Application.Transpose(d1.Items)
- Sheet3.Range("b1").Resize(d2.Count, 2) = Application.Transpose(d2.Items)
- ar = Sheet3.Range("a1").CurrentRegion
- For j = 2 To UBound(ar, 1)
- ar(j, 3) = D(ar(j, 1) & "|" & ar(j, 2))
- Next j
-
- Sheet3.Range("a1").Resize(UBound(ar), 3) = ar
- End Sub
复制代码 运行后,结果显示,相同日期会加到一起,例如,日期“2012-4-1”有相同的,会出现错误的。
具体效果见附件
字典条件求和二.rar
(16.06 KB, 下载次数: 343)
|
|