情景: 由于数据量大,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