excel怎么累加每日数据(Excel中多表数据自动累加汇总)

作者:空中的纸飞机

链接:https://www.jianshu.com/p/9e1686f378a8

让不懂编程的人看懂VBA,让大家都能轻松搞定批量数据。

各类办公室文员与数据打交道,可能会经常遇到以下问题:

上级机构制作了一张表格,下发给各下级单位,要求他们填写好后上交。

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(1)

总公司制作的下发样表

收齐之后,需要将交上来的表格中的数据累加,然后填入到汇总表里,如果需要填写的数据很多,下级单位数量也不少,那工作量就会特别大,而且特别容易出错。

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(2)

回收各分公司填写的数据表

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(3)

分公司填写数据样例

但如果我们利用VBA写一段宏代码,就可以轻松搞定这个问题了。这里当然不是让你自己去写,我已经写好了,你只需要复制过去就能用,而且我已经把备注写的非常清楚了。

解决步骤:

1.新建一个文件夹,将待汇总的空表另存为一个启用宏的Excel文件。

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(4)

文件类型选择“启用宏的工作簿”

2.在文件夹中再新建一个文件夹,命名为“数据”,将所有收回的数据文件存放于其中。

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(5)

将回收的数据存放于数据文件夹中,文件件与汇总表并列

3.打开汇总表Excel文件,单击【试图】菜单中的【宏】-【录制宏】命令,在打开的对话框中输入宏名称“hz”后确定。

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(6)

打开宏对话框

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(7)

4.在单击【试图】菜单中的【宏】-【查看宏】,在打开的对话框中选择宏名称,然后点击【编辑】按钮。

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(8)

5.在打开的窗口中将原有内容全部删除,将下图内容粘贴到编辑框中。

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(9)

5.单击该窗口中的【运行子过程】按钮,即可完成所有分公司数据自动汇总,并将汇总数据填写到汇总表中对应区域的工作。

excel怎么累加每日数据(Excel中多表数据自动累加汇总)(10)

汇总后的结果

注意:

1.汇总后若想再次修改宏代码,可以通过【试图】菜单中的【宏】-【查看宏】-【编辑】命令来浏览宏代码。

2.按照备注文字的说明可以根据实际表格中数据区域的位置和行列数,修改相关参数。

其中:

数组brr(1 To 3, 1 To 4)表示数据区域的行列数,即需要汇总数据共有3行4列;

单元格区域[B3:E5]表示需要汇总数据位于[B3:E5]这个区域;

循环For i = 1 To 3 For j = 1 To 4 表示从待汇总区域的第一行到第三行、第一列到第四列进行累加。

3.全部代码如下:(复制过去稍作修改即可使用)

Sub hz()

Dim Fso, Fld, Fl

Dim arr, brr(1 To 3, 1 To 4), i%, j%

'定义变量及数组(数组大小由需要汇总数据区域的行列数确定)

Set Fso = CreateObject("Scripting.FileSystemObject")

Set Fld = Fso.getfolder(ThisWorkbook.Path & "\数据\") '读取待汇总数据所在的文件夹

If Fld.Files.Count > 0 Then

Application.ScreenUpdating = False

For Each Fl In Fld.Files

Workbooks.Open (Fl)

arr = ActiveWorkbook.Worksheets(1).[B3:E5] '将各表数据区域需要汇总的值赋给数组arr

For i = 1 To 3 '逐行

For j = 1 To 4 '逐列

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).[B3:E5] = brr '将汇总数据写入到汇总表对应的区域

MsgBox "数据汇总完成"

Else

MsgBox "没有找到任何工作簿文件"

End If

End Sub

希望本例能帮你减轻重复计算的体力活之苦。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页