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

(0)

相关推荐