VBA For Excel高效率办公工具癖

Excel中多表数据自动累加汇总

2017-02-07  本文已影响2913人  秋迷恋夏

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

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

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

总公司制作的下发样表

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

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

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

解决步骤:

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

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

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

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

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

打开宏对话框

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

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

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

汇总后的结果

注意:

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

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

喜欢这类文章就关注我:“空中的纸飞机”或我的专题:“高效率办公”吧!索要样例文件,可以简信我。

轻松玩转Word替换,工作不再事倍功半

通过Word邮件合并功能批量自动打印奖状证书

复制数字期刊内容快速编辑技巧

快速解决试卷中客观题答案格式的相关问题

通过“Vlookup”函数比对表格

Excel中通过Vlookup函数提取数据

Excel中多表数据自动累加汇总

Excel中快速录入数据技巧

上一篇 下一篇

猜你喜欢

热点阅读