+ -
当前位置:首页 → 问答吧 → 寻:VBA代码替代SUMIF及其它函数组

寻:VBA代码替代SUMIF及其它函数组

时间:2011-08-02

来源:互联网

寻:VBA代码替代SUMIF及其它函数组,请各路大虾们赐教!

附件

未命名.jpg(57.06 KB)

2011-8-2 18:21

8201.rar(13.15 KB)

2011-8-2 18:21, 下载次数: 9

未命名6.jpg(201.83 KB)

2011-8-2 18:21

作者: 2285343932   发布时间: 2011-08-02

烧了不脑细胞,请各位大虾指正!

附件

未命名2.jpg(47.37 KB)

2011-8-2 18:23

作者: 2285343932   发布时间: 2011-08-02

用数据透视表(多重合并计算),又快又好。

附件

8201.rar(10.87 KB)

2011-8-2 19:38, 下载次数: 0

作者: cbtaja   发布时间: 2011-08-02

复制内容到剪贴板
代码:
Sub yy()
Dim d, k, t, Arr, i&, Brr, r1
Set d = CreateObject("Scripting.Dictionary")
Sheet10.Activate
Arr = [a1].CurrentRegion
For i = 2 To UBound(Arr)
    d(Arr(i, 7)) = d(Arr(i, 7)) + Arr(i, 9)
Next
k = d.keys
t = d.items
[k2:m10000].ClearContents
[k2].Resize(d.Count, 1) = Application.Transpose(k)
[l2].Resize(d.Count, 1) = Application.Transpose(t)
ReDim Brr(1 To d.Count)
d.RemoveAll
Arr = Sheet12.[a1].CurrentRegion
For i = 2 To UBound(Arr)
    d(Arr(i, 1)) = d(Arr(i, 1)) + Arr(i, 2)
Next
k1 = d.keys
t1 = d.items
For i = 0 To UBound(k)
For j = 0 To UBound(k1)
    If k1(j) = k(i) Then
        Brr(i + 1) = t1(j): Exit For
    End If
Next
Next
[m2].Resize(d.Count, 1) = Application.Transpose(Brr)
Set d = Nothing
End Sub

作者: 蓝桥玄霜   发布时间: 2011-08-02

请见附件。

附件

替代公式0802.rar(12.97 KB)

2011-8-2 20:06, 下载次数: 1

作者: 蓝桥玄霜   发布时间: 2011-08-02