通过字典和数组进行分类汇总表格数据
Sub 分类汇总求和() Dim arr Sheets("分类汇总").Select Range("a2:h30000").ClearContents h = Sheets("汇总").Cells(65535, 1).End(xlUp).Row arr = Sheets("汇总").Range("a2:g" & h) ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2)) Set mydic = CreateObject("Scripting.Dictionary") For i = 1 To UBound(arr, 1) k = arr(i, 1) & "丨" & arr(i, 2) & "丨" & arr(i, 3) & "丨" & arr(i, 5) & "丨" & arr(i, 6) If Not mydic.exists(k) Then j = j + 1 mydic(k) = j brr(j, 1) = arr(i, 1) brr(j, 2) = arr(i, 2) brr(j, 3) = arr(i, 3) brr(j, 4) = arr(i, 5) brr(j, 5) = arr(i, 6) brr(j, 6) = IIf(arr(i, 7) = "系统", brr(j, 6) + arr(i, 4), brr(j, 6)) brr(j, 7) = IIf(arr(i, 7) = "实际", brr(j, 7) + arr(i, 4), brr(j, 7)) Else r = mydic(k) brr(r, 6) = IIf(arr(i, 7) = "系统", brr(r, 6) + arr(i, 4), brr(r, 6)) brr(r, 7) = IIf(arr(i, 7) = "实际", brr(r, 7) + arr(i, 4), brr(r, 7)) End If Next Set mydic = Nothing Cells(2, 1).Resize(j, UBound(brr, 2)) = brr For i = 2 To Cells(65535, 1).End(xlUp).Row Cells(i, 8) = Cells(i, 7) - Cells(i, 6) Next End Sub
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通