每次要把一堆工作表数据拼到一张表,复制粘贴来回切表,手都点酸,还容易漏行、重复表头?给大家分享懒人 VBA 一键合并大法,小白也能上手!
一、操作 3 步走,零复杂操作
打开你的 Excel 表格,快捷键 Alt+F11 调出 VBA 编辑器
左侧右键当前文件→插入→模块,把文末代码粘贴进去
按下 F5 一键运行,自动生成名为「汇总」的新工作表
二、懒人专属 VBA 代码
Sub 合并所有工作表()
Dim sht As Worksheet
Dim 汇总表 As Worksheet
Dim i As Long
'新建汇总工作表
On Error Resume Next
Set 汇总表 = Sheets("汇总")
If Err.Number = 0 Then Application.DisplayAlerts = False: 汇总表.Delete: Application.DisplayAlerts = True
On Error GoTo 0
Set 汇总表 = Sheets.Add(After:=Sheets(Sheets.Count))
汇总表.Name = "汇总"
i = 1 '从第一行开始
For Each sht In ThisWorkbook.Worksheets
If sht.Name <> "汇总" Then
'复制表头(仅第一次复制)
If i = 1 Then
sht.Rows(1).Copy 汇总表.Cells(i, 1)
i = i + 1
End If
'复制当前表除表头外所有数据
sht.UsedRange.Offset(1, 0).Copy 汇总表.Cells(i, 1)
i = 汇总表.Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
Next sht
MsgBox "合并完成!汇总表已生成"
End Sub
三、关键小提醒,别踩坑
适用前提:所有 Sheet表头、列顺序完全一致,不然数据会错位
文件保存:带宏代码需要另存为 .xlsm 格式,不然下次打开代码会消失
优势:不用手动复制几十次,几百条数据一键归集,再也不用反复拖拽表格
所有同结构表格一键合并
后续每个负责人更新自己 Sheet 数据,右键刷新汇总表即可同步,不用重复复制粘贴
夜雨聆风