在 Excel 中將指定的多個工作表合併成一個工作表,可以使用以下方法:
可以使用以下 VBA 來合併指定的工作表:
-
打開 VBA 編輯器:按
Alt + F11。 -
插入模塊:點擊「插入」>「模塊」,然後將以下代碼粘貼到模塊中:
Sub MergeSelectedSheets() Dim ws As Worksheet Dim masterWs As Worksheet Dim lastRow As Long Dim sheetNames As Variant ' Specify the name of the worksheet to be merged
sheetNames = Array("Sheet1", "Sheet2", "Sheet3") ' Change to your worksheet name
' Create a new worksheet after merge
Set masterWs = ThisWorkbook.Worksheets.Add masterWs.Name = "NewWorksheetName"
' Loop through the specified worksheets
For Each ws In ThisWorkbook.Worksheets If Not IsError(Application.Match(ws.Name, sheetNames, 0)) Then lastRow = masterWs.Cells(masterWs.Rows.Count, 1).End(xlUp).Row + 1 ws.UsedRange.Copy masterWs.Cells(lastRow, 1) End If Next ws End Sub -
關閉 VBA 編輯器:關閉編輯器,然後按
Alt + F8,選擇MergeSelectedSheets並點擊「執行」。
可以使用以下 VBA 來合併指定的工作表,並排除第一行:
-
打開 VBA 編輯器:按
Alt + F11。 -
插入模塊:點擊「插入」>「模塊」,然後將以下代碼粘貼到模塊中:
Sub MergeSelectedSheetsExcludeFirstRow() Dim ws As Worksheet Dim masterWs As Worksheet Dim lastRow As Long Dim sheetNames As Variant Dim rng As Range ' Specify the name of the worksheet to be merged sheetNames = Array("Sheet1", "Sheet2", "Sheet3") ' Change to your worksheet name ' Create a new worksheet after merge Set masterWs = ThisWorkbook.Worksheets.Add masterWs.Name = "NewWorksheetName" ' Loop through the specified worksheets For Each ws In ThisWorkbook.Worksheets If Not IsError(Application.Match(ws.Name, sheetNames, 0)) Then ' Exclude the first row Set rng = ws.UsedRange.Offset(1, 0) ' Exclude the first row lastRow = masterWs.Cells(masterWs.Rows.Count, 1).End(xlUp).Row + 1 rng.Copy masterWs.Cells(lastRow, 1) End If Next ws End Sub -
關閉 VBA 編輯器:關閉編輯器,然後按
Alt + F8,選擇MergeSelectedSheets並點擊「執行」。
可以使用以下 VBA 來合併指定的工作表,並排除第一行和保留第一個工作表的第一行
打開 VBA 編輯器:按
Alt + F11。插入模塊:點擊「插入」>「模塊」,然後將以下代碼粘貼到模塊中:
Sub MergeSelectedSheetsExcludeFirstRow() Dim ws As Worksheet Dim masterWs As Worksheet Dim lastRow As Long Dim sheetNames As Variant Dim rng As Range ' 指定要合併的工作表名稱 sheetNames = Array("Sheet1", "Sheet2", "Sheet3") ' 修改為您的工作表名稱 ' 創建一個新的工作表 Set masterWs = ThisWorkbook.Worksheets.Add masterWs.Name = "合併結果" ' 複製第一個工作表的數據 ThisWorkbook.Worksheets(sheetNames(0)).UsedRange.Copy masterWs.Cells(1, 1) ' 循環遍歷指定的工作表 For i = 1 To UBound(sheetNames) Set ws = ThisWorkbook.Worksheets(sheetNames(i)) ' 排除第一行 Set rng = ws.UsedRange.Offset(1, 0) ' 排除第一行 lastRow = masterWs.Cells(masterWs.Rows.Count, 1).End(xlUp).Row + 1 rng.Copy masterWs.Cells(lastRow, 1) Next i End Sub關閉 VBA 編輯器:關閉編輯器,然後按
Alt + F8,選擇MergeSelectedSheets並點擊「執行」。
可以使用以下 VBA 來合併所有的工作表,並排除第一行和保留第一個工作表的第一行
Sub MergeAllSheetsExcludeFirstRow()
Dim ws As Worksheet
Dim masterWs As Worksheet
Dim lastRow As Long
Dim rng As Range
Dim firstSheet As Boolean
' 創建合併工作表
Set masterWs = ThisWorkbook.Worksheets.Add
masterWs.Name = "MergedSheet" ' 設定合併工作表的名稱
firstSheet = True ' 用於標記是否為第一個工作表
' 遍歷所有工作表
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> masterWs.Name Then ' 避免處理合併工作表
If firstSheet Then
' 複製第一個工作表的第一行
ws.Rows(1).Copy masterWs.Rows(1)
firstSheet = False ' 設置為非第一個工作表
Else
' 排除第一行
Set rng = ws.UsedRange.Offset(1, 0) ' 排除第一行
' 獲取合併工作表的最後一行
lastRow = masterWs.Cells(masterWs.Rows.Count, 1).End(xlUp).Row + 1
' 複製數據到合併工作表
rng.Copy masterWs.Cells(lastRow, 1)
End If
End If
Next ws
End Sub
Sub MergeAllSheetsExcludeFirstRow()
Dim ws As Worksheet
Dim masterWs As Worksheet
Dim lastRow As Long
Dim rng As Range
Dim firstSheet As Boolean
' 創建合併工作表
Set masterWs = ThisWorkbook.Worksheets.Add
masterWs.Name = "MergedSheet" ' 設定合併工作表的名稱
firstSheet = True ' 用於標記是否為第一個工作表
' 遍歷所有工作表
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> masterWs.Name Then ' 避免處理合併工作表
If firstSheet Then
' 複製第一個工作表的第一行
ws.Rows(1).Copy masterWs.Rows(1)
firstSheet = False ' 設置為非第一個工作表
Else
' 排除第一行
Set rng = ws.UsedRange.Offset(1, 0) ' 排除第一行
' 獲取合併工作表的最後一行
lastRow = masterWs.Cells(masterWs.Rows.Count, 1).End(xlUp).Row + 1
' 複製數據到合併工作表
rng.Copy masterWs.Cells(lastRow, 1)
End If
End If
Next ws
End Sub
先將沒有的分頁刪除
說明:
這些方法可以幫助您有效地將指定的多個工作表合併成一個工作表,根據您的需求選擇合適的方法即可。


0 留言