一、合并之前的数据 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
|