|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
Sub sumiif()
Dim i, k, m, irow, irow1
Dim arr, brr, crr
Dim d1 As Object
Dim d2 As Object
Dim d3 As Object
Dim d4 As Object
Set d1 = CreateObject("scripting.dictionary")
Set d2 = CreateObject("scripting.dictionary")
Set d3 = CreateObject("scripting.dictionary")
Set d4 = CreateObject("scripting.dictionary")
irow = Sheets("明细").[c65536].End(xlUp).Row
arr = Sheets("明细").Range("a1:p" & irow)
For i = 5 To irow
m = Month(arr(i, 2))
d1(arr(i, 3) & m) = arr(i, 4) + d1(arr(i, 3) & m)
d2(arr(i, 3) & m) = arr(i, 9) + d2(arr(i, 3) & m)
d3(arr(i, 3) & m) = arr(i, 12) + d3(arr(i, 3) & m)
d4(arr(i, 3) & m) = arr(i, 13) + d4(arr(i, 3) & m)
Next
irow1 = Sheets("汇总").[c65536].End(xlUp).Row
brr = Sheets("汇总").Range("a1:p" & irow)
ReDim crr(1 To irow - 4, 1 To 4)
For k = 5 To irow1
crr(k - 4, 1) = d1(brr(k, 4) & brr(k, 6))
crr(k - 4, 2) = d2(brr(k, 4) & brr(k, 6))
crr(k - 4, 3) = d3(brr(k, 4) & brr(k, 6))
crr(k - 4, 4) = d4(brr(k, 4) & brr(k, 6))
Next
Sheets("汇总").[g5].Resize(UBound(crr), 4) = crr
MsgBox "ok"
End Sub |
|