+ -
当前位置:首页 → 问答吧 → 一个复杂的多表汇总问题(表头会变动),请高人指点?

一个复杂的多表汇总问题(表头会变动),请高人指点?

时间:2011-08-06

来源:互联网

如何用VBA实现附件中的明细数据 汇总到汇总表里? 请各位高人看看

问题:
想对月数据进行汇总(同项目 同姓名的就相加)
说明:
1.明细表的个数不确定
2.明细表的 项目都在第2行(从A3开始) 和 姓名 都在第一列(从B2开始)
3.明细表的项目 和 姓名 是可以变化的(这里只是列举了3个月的数据)
(汇总时,黄色区域根据明细表的变化  包含了明细表中的所有对应内容的最大集合--剔除重复,现在的样子就是一个例子)

附件

wt.rar(26.24 KB)

2011-8-6 18:23, 下载次数: 7

作者: andrewyang   发布时间: 2011-08-06

请测试
Sub Macro1()
    Dim arr, brr(), sh As Worksheet, i&, j&, m&, n&, d As Object, ds As Object
    Set d = CreateObject("scripting.dictionary")
    Set ds = CreateObject("scripting.dictionary")
    For Each sh In Sheets
        If sh.Name <> "汇总" Then
            arr = sh.[a1].CurrentRegion
            For j = 2 To UBound(arr, 2)
                If Not d.Exists(arr(2, j)) Then
                    n = n + 1
                    d(arr(2, j)) = n
                End If
            Next
        End If
    Next
    ReDim brr(1 To 60000, n)
    For Each sh In Sheets
        If sh.Name <> "汇总" Then
            arr = sh.[a1].CurrentRegion
            For i = 3 To UBound(arr)
                If Not ds.Exists(arr(i, 1)) Then
                    m = m + 1
                    ds(arr(i, 1)) = m
                    brr(m, 0) = arr(i, 1)
                    For j = 2 To UBound(arr, 2)
                        brr(m, d(arr(2, j))) = arr(i, j)
                    Next
                Else
                    For j = 2 To UBound(arr, 2)
                        brr(ds(arr(i, 1)), d(arr(2, j))) = brr(ds(arr(i, 1)), d(arr(2, j))) + arr(i, j)
                    Next
                End If
            Next
        End If
    Next
    ActiveSheet.UsedRange.Offset(2).ClearContents
    Range("B2:iv2").ClearContents
    [b2].Resize(, n) = d.Keys
    [a3].Resize(m, n + 1) = brr
    Application.ScreenUpdating = True
End Sub

作者: zhaogang1960   发布时间: 2011-08-06

附件
wt.rar (30.36 KB)
wt.rar (30.36 KB)
下载次数: 9
2011-8-6 19:01

作者: zhaogang1960   发布时间: 2011-08-06

see if help you

附件

wt v1.rar(30.82 KB)

2011-8-6 19:01, 下载次数: 4

作者: KCFONG   发布时间: 2011-08-06

纯简单公式弄的  如不喜欢  请勿理会

附件

wt.rar(169.87 KB)

2011-8-6 19:20, 下载次数: 9

作者: yangrongguan   发布时间: 2011-08-06

参考附件。

附件

wt.rar(25.71 KB)

2011-8-6 19:55, 下载次数: 6

作者: yaozong   发布时间: 2011-08-06

相关阅读 更多