情景: 由於數據量大,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
