今天我们来聊聊一个超级实用的场景——数据汇总。公司每个月都有几十个表格需要汇总到一起,每次用复制粘贴简直要崩溃,有没有简单一点的方法?当然有啦!用 VBA 来汇总数据,轻松一键搞定!
不管你的数据是分布在多个工作表还是多个工作簿中,只需要几行代码,就能快速完成汇总,既高效又专业!
一、适用场景:快速汇总的典型需求在日常工作中,数据汇总是一个非常常见的任务,比如:
销售数据汇总:将多个区域的销售报表整合到一张总表中,方便统计分析。
财务报表汇总:每个月的财务数据需要汇总到一个年度总表中。
项目数据整理:将不同部门或项目的进度数据整合成一张表,快速生成报告。
如果手动复制粘贴这些数据,不仅浪费时间,还容易出错。而用 VBA,不管是 10 张表还是 100 张表,只需几秒钟就能完成,简直是效率神器!
二、操作步骤:用 VBA 快速完成汇总
1. 启用开发者工具
打开 Excel,点击【文件】->【选项】。
在弹出的窗口中选择【自定义功能区】,勾选右侧的【开发工具】。
点击确定,你就可以在菜单栏看到【开发工具】选项卡啦!
按下快捷键 Alt + F11
打开 VBA 编辑器,然后点击【插入】->【模块】,新建一个模块用来编写代码。
3. 编写代码
以下是一段 VBA 代码,能够快速汇总所有工作表中的数据到一张“汇总表”中。这段代码特别适合处理多张表结构相同的数据,比如每个工作表都有相同的列,只需要将行汇总到一起。
Sub 快速完成汇总() ' 定义变量 Dim ws As Worksheet Dim 汇总表 As Worksheet Dim 最后一行 As Long Dim 汇总行 As Long ' 创建汇总表(如果不存在,则新建) On Error Resume Next Set 汇总表 = ThisWorkbook.Sheets("汇总表") If 汇总表 Is Nothing Then Set 汇总表 = ThisWorkbook.Sheets.Add 汇总表.Name = "汇总表" End If On Error GoTo 0 ' 清空汇总表内容 汇总表.Cells.Clear 汇总表.Cells(1, 1).Value = "汇总结果" ' 设置标题行的示例(可根据实际需求调整) 汇总行 = 2 ' 从第二行开始填充数据 ' 遍历每张工作表 For Each ws In ThisWorkbook.Sheets ' 跳过“汇总表”自身 If ws.Name <> "汇总表" Then ' 获取当前工作表的最后一行 最后一行 = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' 复制数据到汇总表 If 最后一行 > 1 Then ' 确保当前工作表有数据 ws.Rows("2:" & 最后一行).Copy Destination:=汇总表.Cells(汇总行, 1) ' 更新汇总表的下一行起点 汇总行 = 汇总表.Cells(汇总表.Rows.Count, 1).End(xlUp).Row + 1 End If End If Next ws ' 自动调整列宽 汇总表.Columns.AutoFit ' 提示完成 MsgBox "数据汇总完成!", vbInformation End Sub
4. 运行代码
在 VBA 编辑器中,按 F5
或点击【运行】按钮执行代码。
打开 Excel,看看是不是生成了一张名为“汇总表”的工作表,所有其他工作表中的数据都已经汇总到这里了!
【注意】
- 代码默认跳过了名为“汇总表”的工作表,避免将汇总数据重复复制回自己。
- 上述代码假设每个表的标题行在第 1 行,数据从第 2 行开始。如果你的数据结构不同,可以调整
Rows("2:" & 最后一行)
中的数字。
还没有评论,来说两句吧...