将EXCEL中的多个SHEET中内容合并到一个SHEET中

情景: 由于数据量大,sheet页数多,手工拷贝比较麻烦,也容易出错

条件: 一个worksheet里面的多个sheet中的数据都是一样的格式,就是说都有head line, 字段数也是一样的,只是数据和行数不一样.

方案: 使用vba效率高,速度快.

步骤:

1. 在要合并的excel中新建一个空白页面,并放到最前面,作为第一个sheet页

2.拷贝如下VBA代码,并运行

百度找了很多VBA代码都不能正常合并. 找了老半天终于找到了个可以用的: 

Sub hb()

Dim bt, i, r, c, n, first As Long

bt = 1 '表头行数,多行改为对应数值

Cells.Clear

For i = 1 To Sheets.Count

    If Sheets(i).Name <> ActiveSheet.Name Then  '务必当前在新建的空白页面中

        If first = 0 Then

            c = Sheets(i).Cells(1, Columns.Count).End(xlToLeft).Column '获取字段数https://www.cnblogs.com/acetaohai123/p/6505447.html

            Sheets(i).Range("A1").Resize(bt, c).Copy Range("A1") '拷贝第一行,也就是head line

            n = bt + 1: first = 1

        End If

        r = Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row          '获取要拷贝的sheet的行数

        Sheets(i).Range("A" & bt + 1).Resize(r - 1, c).Copy Range("A" & n)  '拷贝当前sheet中的数据到第N行

        n = n + r - bt   '更新行数变量n

    End If

Next

End Sub

  

 

posted @ 2020-06-03 14:59  亚历山大88  阅读(2884)  评论(0编辑  收藏  举报