Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3980|回复: 10

[已解决]求助跨表多列条件求和汇总并标记VBA代码

[复制链接]
发表于 2016-4-21 09:05 | 显示全部楼层 |阅读模式
本帖最后由 hnyxq 于 2016-4-21 13:00 编辑

汇总表要求把所有的工作单名称、单位、计算式、总量4列汇总,并且标明所有名称的工作单号。工作名称不能重复。实际工作有很多张,不止3张,手动累加太麻烦而且易错,想做一个VBA,无奈数组和字典至今没学懂。求各位老师帮忙解决,谢谢!

图片

图片
最佳答案
2016-4-22 11:29
这样吗?

多列条件汇总.rar

7.59 KB, 下载次数: 11

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-4-22 11:29 | 显示全部楼层    本楼为最佳答案   
这样吗?

工作单汇总.rar

13.24 KB, 下载次数: 16

评分

参与人数 1 +3 收起 理由
白云无尽9987 + 3 赞一个

查看全部评分

回复

使用道具 举报

发表于 2016-4-21 10:35 | 显示全部楼层
  1. Sub 汇总()
  2.     dh = "①②③④⑤⑥⑦⑧⑨⑩⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇"      '单号,如有增加请自行添加
  3.     Dim sh As Worksheet
  4.     Set d = CreateObject("scripting.dictionary")
  5.     Dim brr(1 To 100, 1 To 6)
  6.     For k = 2 To Sheets.Count
  7.         Set sh = Sheets(k)
  8.         r = sh.[c65536].End(3).Row
  9.         xdh = Mid(dh, k - 1, 1)
  10.         If r >= 13 Then
  11.             arr = sh.Range("c13:f" & r)
  12.             For i = 1 To UBound(arr)
  13.                 x = arr(i, 1)
  14.                 If Not d.exists(x) Then
  15.                     n = n + 1: d(x) = n
  16.                     brr(n, 1) = n
  17.                     For j = 2 To 5: brr(n, j) = arr(i, j - 1): Next
  18.                     brr(n, 6) = xdh
  19.                 Else
  20.                     p = d(x)
  21.                     brr(p, 4) = brr(p, 4) & "+" & arr(i, 3)
  22.                     brr(p, 5) = brr(p, 5) + arr(i, 4)
  23.                     If InStr(brr(p, 6), xdh) = 0 Then brr(p, 6) = brr(p, 6) & xdh
  24.                 End If
  25.             Next
  26.         End If
  27.     Next
  28.     If n > 0 Then [a10].Resize(n, 6) = brr
  29. End Sub
复制代码

工作单汇总.rar

13.2 KB, 下载次数: 16

回复

使用道具 举报

 楼主| 发表于 2016-4-21 18:01 | 显示全部楼层
grf1973 发表于 2016-4-21 10:35

非常感谢grf1973老师的快速解答,收益匪浅,虽然看不懂你的代码,不过测试非常成功,向你致敬。冒昧的问一下,能不能再提点要求?可能是我的工作单示例写得太简单的缘故,如果每项工作的计算式很长,各张工作单相同项目累加计算式会变得很长很长,即占用单元格又不美观,也没必要,审核起来很多余。能不能在汇总表的计算式中列出各张工作单每项工作结果的计算式?再次感谢!
20160421174943846.png
  
  • 关闭
  • 上传图片
  • 普通上传
  • 相册图片
  • 网络图片
请输入图片地址宽(可选)高(可选)

提交




上传 ←选择完文件后请点击“上传”按钮 上传中,请稍候,您可以暂时关闭这个小窗口,上传完成后您会收到通知
文件尺寸: 小于 500KB , 可用扩展名: jpg, jpeg, gif, png  

确定






  
  • 关闭
  • 上传图片
  • 普通上传
  • 相册图片
  • 网络图片

回复

使用道具 举报

 楼主| 发表于 2016-4-22 11:40 | 显示全部楼层
hnyxq 发表于 2016-4-21 18:01
非常感谢grf1973老师的快速解答,收益匪浅,虽然看不懂你的代码,不过测试非常成功,向你致敬。冒昧的问一 ...

感谢grf1973老师的源程序,请问各位老师能不能再修改一下程序,达到完美程度。谢谢!

xg.jpg

工作单汇总源程序.rar (13.48 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2016-4-22 11:44 | 显示全部楼层
grf1973 发表于 2016-4-22 11:29
这样吗?

就是这样,这么快就解决了。最佳答案,完美答案。感谢老师。
回复

使用道具 举报

 楼主| 发表于 2016-4-22 11:53 | 显示全部楼层
grf1973 发表于 2016-4-22 11:29
这样吗?

感谢老师的最佳答案。我想设置为最佳答案,不知道在哪里设置,我是新手请以后多关照,谢谢。
回复

使用道具 举报

发表于 2016-4-22 22:08 | 显示全部楼层
E:\lxlyhu\我的自动备份文件夹\products\mergebooks安装程序\跨表查询1.png
E:\lxlyhu\我的自动备份文件夹\products\mergebooks安装程序\跨表查询2.png
回复

使用道具 举报

发表于 2016-4-22 22:09 | 显示全部楼层
E:\lxlyhu\我的自动备份文件夹\products\mergebooks安装程序\跨表查询1.png
回复

使用道具 举报

发表于 2016-4-22 22:09 | 显示全部楼层
插入不了图片
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 19:44 , Processed in 0.618239 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表