VBA程序跨工作薄汇总数据!

来源:微信公众号表妹的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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本例为设置密码窗口 (1) If Application.InputBox(“请输入密码:”) = 1234 Th...
    浮浮尘尘阅读 13,766评论 1 20
  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 21,850评论 6 49
  • 第1章 第一个C程序第2章 C语言基础第3章 变量和数据类型第4章 顺序结构程序设计第5章 条件结构程序设计第6章...
    小狮子365阅读 10,718评论 3 71
  • 父亲,中等个子,话不多,因为要经常在外劳作,一年四季都是黝黑的皮肤,这两年父亲的背略微有些驼,每次回家都会看见 他...
    想笑却没有滋味阅读 276评论 0 0
  • 很早以前就看过《塞翁失马》的故事。 在很久很久的时候,山上有一个部落,部落有一个年轻的小伙子,有一天到外面去打猎时...
    荣若言阅读 492评论 0 0