将excel中的多个工作表sheet合成一个工作表

这篇博客介绍了如何利用VBA将Excel中的多个工作表合并到一个工作表中。步骤包括新建目标工作表,编写VBA代码,遍历并复制每个工作表的数据,删除多余表头,最后运行代码完成合并。适合需要批量整理Excel数据的用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇说到将excel中的一个工作表按照某列拆分成多个sheet工作表,那么如何把excel中的多个工作表sheet合成一个工作表呢?接下来就继续利用VBA工具来解决这个问题。
工作表合成前:在这里插入图片描述
工作表合成后:
在这里插入图片描述

**第一步:**在文件中新建一个工作表sheet,用来存放合成后的数据,如图所示:
在这里插入图片描述
第二步:点击“开发工具—>查看代码”命令,如图所示:
在这里插入图片描述
第三步在sheet1(sheet2)中输入代码,如图所示:
在这里插入图片描述
具体代码如下:

Private Sub sheets()
Application.ScreenUpdating = False
'合并工作表

'循环遍历每个工作表
For j = 1 To Workbooks(1).sheets.Count
    '判断遍历的工作表是否是合并后的那张工作表
   If Workbooks(1).sheets(j).Name <> ActiveSheet.Name Then
        '如果不是,定义所遍历的工作表数据行数
       X = Range("A65536").End(xlUp).Row + 1
        '把所遍历的工作表中的数据复制到合并的那张工作表中
       Workbooks(1).sheets(j).UsedRange.Copy Cells(X, 1)

   End If

Next j

'删除多余的表头
Dim i As Integer, Cons As Integer
    '定义合并后工作表的数据行数
   Cons = Range("A65536").End(xlUp).Row
   '通过上面方法合并工作表后会存在第一行没有数据,所以删除第一行
   Range("A1").EntireRow.Delete
   '从后往前遍历合并后的工作表第一列数据
    For i = Cons To 3 Step -1
        '判断是否是需要删除的字段名,“序号”是表格中当前字段开头的名字
        If Range("A" & i) = "序号" Then
            '如果是,执行删除
            Range("A" & i).EntireRow.Delete
        End If
    Next i

Range("B1").Select

Application.ScreenUpdating = True

MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"

End Sub

第五步:点击“运行”即可。或者“点击运行—>运行子过程/用户窗体”。
在这里插入图片描述
这样工作表就可以合在一起了!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值