来源:微信公众号表妹的EXCEL
关于跨工作表汇总数据的问题,表妹之前已经介绍过很多方法了(推送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 To5
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 If
End Sub
代码替换参数解释:
brr(1 To5, 1 To5):汇总数据区域(不包含标题)有5行5列;
\上半年\:被汇总数据位于“上半年”文件夹;
B2:F6:被汇总数据区域;
B2:F6:“上半年汇总”中汇总结果区域
通过VBA程序,只需要轻松3步走,就可以实现快速汇总多工作薄中的数据了,VBA代码是不是很神奇呢?勤奋好学的小伙伴,赶快复制粘贴代码试试吧~~
如果你觉得表妹的分享内容很实用,欢迎分享给其他小伙伴呦,独乐乐不如众乐乐嘛!
关注微信公众号“表妹的EXCEL”,每周一、三、五获取原创分享教程。加入“表妹的EXCELQQ群(345387282)”,和勤奋好学的小伙伴们一起快乐地学习EXCEL吧!
本文已在版权印备案,如需转载请访问版权印14257715