VBA多工作表合并
今天和大家分享“多工作表合并”,许多朋友在工作中要用到此功能,把多个工作表合并到一张工作表上,且可以更新的,下面是用vba编程实现,学完vba初级就可以达到这个水平。
一、合并之前的数据
A、一月

B、二月

C、三月

二、动画效果

三、所有代码
Option Explicit
Sub 多工作表合并()
Dim x, 最后, 最最后
Sheets("总表").Cells.Clear '清空原有数据
For x = 2 To Sheets.Count
'从第2个工作表开始循环,一直到最后一个工作表
If x = 2 Then
'判断,如果x=2,也就是第2个位置工作表,复制表头
Sheets(x).Range("A1").CurrentRegion.Copy Sheets("总表").[B1]
'把第2个工作表中的内容复制到总表的B1
最后 = Sheets("总表").Cells(Rows.Count, 2).End(xlUp).Row
'获取复制数据之后总表B列最后一个非空单元格的行号
Sheets("总表").Range("A2:A" & 最后) = Sheets(x).Name
'把第2个工作表名填充到单元格区域A2:A" & 最后
Else
'不复制表头
最最后 = Sheets("总表").Cells(Rows.Count, 2).End(xlUp).Row + 1
'获取总表B列最后一个非空单元格的行号还要加1
Sheets(x).Range("A1").CurrentRegion.Offset(1, 0).Copy Sheets("总表").Cells(最最后, 2)
'把第x个工作表中的内容复制到总表的单元格Cells(最最后, 2)
'最后 = Sheets("总表").Cells(Rows.Count, 2).End(xlUp).Row
'获取复制数据之后总表B列最后一个非空单元格的行号
最后 = Sheets("总表").Cells(Rows.Count, 2).End(xlUp).Row
'获取复制数据之后总表B列最后一个非空单元格的行号
Sheets("总表").Range("A" & 最最后 & ":A" & 最后) = Sheets(x).Name
'把第x个工作表名填充到总表工作表单元格区域A" & 最最后 & ":A" & 最后
End If
Next x
Sheets("总表").[A1] = "工作表名" '总表的A1单元格显示“工作表名”
End Sub
Sub 清空()
Sheets("总表").Cells.Clear '清空原有数据
End Sub
四、代码截图

五、具体操作方法
在工作表中像我这样输入原始数据,如果你的数据不一样,代码要作修改。
复制上面的代码
快捷键Alt+F11打开vbe后台→插入→模块→把代码粘贴进去
按快捷键F5,注意光标要点到任意一行代码中间,再按F5
