|
楼主 |
发表于 2013-7-21 19:35
|
显示全部楼层
本帖最后由 dasly123 于 2013-7-21 19:37 编辑
sliang28 发表于 2013-7-21 16:34
请测试附件……
Private Sub CommandButton1_Click()
Dim arr, brr
Dim d, d1, d2
Dim i, j
arr = Sheets("信息表").UsedRange
brr = Sheets("统计求和").Range("A4:B" & Range("A65536").End(3).Row)
Set d = CreateObject("Scripting.dictionary")
Set d1 = CreateObject("Scripting.dictionary")
Set d2 = CreateObject("Scripting.dictionary")
For i = 1 To UBound(arr)
d(arr(i, 1)) = d(arr(i, 1)) + arr(i, 9)
d1(arr(i, 1)) = d1(arr(i, 1)) + arr(i, 10)
Next
ReDim crr(1 To UBound(brr), 1 To 3)
For i = 1 To UBound(brr)
m = m + 1
crr(m, 3) = d(brr(i, 1))
crr(m, 2) = d1(brr(i, 1))
crr(m, 1) = crr(m, 3) * brr(i, 2)
Next
For i = 1 To m
d2(crr(i, 2)) = d2(crr(i, 2)) + crr(i, 1)
Next
With Sheets("统计求和")
.Range("D4:F" & UBound(brr)).ClearContents
.Range("H5:I" & UBound(brr)).ClearContents
.Range("D4").Resize(m, 3) = crr
.Range("H5").Resize(d2.Count, 1) = Application.WorksheetFunction.Transpose(d2.keys)
.Range("I5").Resize(d2.Count, 1) = Application.WorksheetFunction.Transpose(d2.items)
End With
End Sub
d2(crr(i, 2)) = d2(crr(i, 2)) + crr(i, 1) +crr(i+1)表示什么?
.Range("H5").Resize(d2.Count, 1) = Application.WorksheetFunction.Transpose(d2.keys) 这两句 何解??
.Range("I5").Resize(d2.Count, 1) = Application.WorksheetFunction.Transpose(d2.items) 这两句 何解??
|
|