【113】--VBA程序跨工作薄汇总数据!

论坛 期权论坛 期权     
表妹的EXCEL   2019-7-15 09:21   3169   0

关于跨工作汇总数据的问题,表妹之前已经介绍过很多方法了(推送43、推送46)。不过还有大批小伙伴在日常工作中,经常要面临跨工作薄汇总数据的问题,所以今天表妹就通过万能的VBA程序,来给大家分享一下跨工作薄汇总数据的代码。少年,准备接招吧~~
~~~~~~跨工作薄汇总的分割线~~~~~~
问题描述
已知各部门1月~6月的城市销售数据(文件命名无规律,但数据格式相同),要求汇总上半年各部门的销售额数据。具体情况如下图:

-------------------------------------


解决方法
步骤1:新建文件夹,命名“上半年”,将1月~6月数据放入其中;在文件夹外新建“启用宏的工作薄”,命名“上半年汇总”(新建工作薄,保存为启用宏的工作薄)

-------------------------------------
步骤2:打开新建工作薄,编辑与被汇总数据一致的数据格式;录制宏--命名“汇总”--结束录制--查看宏

-------------------------------------
步骤3:编辑“汇总”宏,添加VBA代码,保存并运行宏
代码如下:
Sub 汇总() Dim x, y, z Dim arr, brr(1 To5, 1 To5), i%, j% Set x = CreateObject("Scripting.FileSystemObject") Set y = x.getfolder(ThisWorkbook.Path & "\上半年\")    If y.Files.Count > 0 Then       Application.ScreenUpdating = False       For Each z In y.Files        Workbooks.Open (z)        arr = ActiveWorkbook.Worksheets(1).[B2:F6]         For i = 1 To 5           For j = 1 To5           If IsNumeric(arr(i, j)) Then brr(i, j) = brr(i, j) + arr(i, j)         Next         Next        ActiveWorkbook.Close      Next     Application.ScreenUpdating = True     ThisWorkbook.Worksheets(1).[B2:F6] = brr  End IfEnd Sub

代码替换参数解释:
brr(1 To5, 1 To5):汇总数据区域(不包含标题)有5行5列;
\上半年\ :被汇总数据位于“上半年”文件夹;
B2:F6:被汇总数据区域;
B2:F6:“上半年汇总”中汇总结果区域


-------------------------------------
通过VBA程序,只需要轻松3步走,就可以实现快速汇总多工作中的数据了,VBA代码是不是很神奇呢?勤奋好学的小伙伴,赶快复制粘贴代码试试吧~~


如果你觉得表妹的分享内容很实用,欢迎分享给其他小伙伴呦,独乐乐不如众乐乐嘛!长按二维码图片,识别图中二维码,关注“表妹的EXCEL”,每周一、三、五获取原创分享教程。加入“表妹的EXCEL群”,和勤奋好学的小伙伴们一起快乐地学习EXCEL吧!

        
微信公众号            QQ学习群
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP