关于跨工作表汇总数据的问题,表妹之前已经介绍过很多方法了(推送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学习群
|
|