打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
多表金额汇总续——字典法


《美妞》


要求

1、合计当中每个费用科目金额等于后面4个部门对应的费用科目金额合计

2、存在困难是每个部门的费用科目是不是固定的

比如人力部交通费用是在第5行,但是拓展部的交通费用科目是在第2行

3、有没有便捷的方式直接取到各个表当中对应费用科目的金额合计



思路

字典定位累加

代码如下:

Sub mySum3()

Dim myDic As Object

Dim sumArr(1 To 300, 1 To 15), Brr()

Dim bRow As Integer, bCol As Integer, aRow As Integer

Dim Sht As Worksheet, yCol As Integer

    Set myDic = CreateObject('Scripting.dictionary')

    For Each Sht In Worksheets

        If Sht.Name <> '合计' Then

            Brr = Sht.UsedRange.Value

            For bCol = 2 To UBound(Brr, 2) - 1    '首先处理月标题

                yCol = Val(Brr(1, bCol)) + 1

                If yCol < 2="" or="" ycol=""> 13 Then   '如果标题不是1-12月则将数据汇总列设置到最后一列

                    Brr(1, bCol) = 15

                Else

                    Brr(1, bCol) = yCol

                End If

            Next

            For bRow = 2 To UBound(Brr, 1)  '开始汇总数据

                If myDic.exists(Brr(bRow, 1)) = False Then

                    aRow = myDic.Count + 1

                    myDic.Add Brr(bRow, 1), aRow

                    sumArr(aRow, 1) = Brr(bRow, 1)

                End If

                aRow = myDic.Item(Brr(bRow, 1))

                For bCol = 2 To UBound(Brr, 2) - 1

                    yCol = Brr(1, bCol)

                    sumArr(aRow, yCol) = Brr(bRow, bCol) + sumArr(aRow, yCol)

                    sumArr(aRow, 14) = sumArr(aRow, 14) + Brr(bRow, bCol)

                Next

            Next

        End If

    Next

    Range('A2').Resize(UBound(sumArr)).EntireRow.ClearContents

    Range('a2').Resize(myDic.Count, UBound(sumArr, 2)).Value = sumArr

End Sub


***华丽分割线***


合伙人

祝福大家

阖家欢乐

红包多多



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DLOOKUP听说过吗?VLOOKUP和它赛跑被甩了几条街
​想保留包含如下字样的行,其它行删除,怎么用VBA实现
辣椒油的学习笔记
自己写的,用VBA提取多列唯一值,有点开心,小成就
ADO把Recordset导入EXCEL后打印~ VB / 数据库(包含打印,安装,报表)...
Excel VBA小程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服