使用VBA可高效合并多個工作表數據。首先通過Alt+F11打開器,插入模塊并粘貼代碼,實現三種合并方式:一是循環合并所有工作表內容至“匯總”表;二是僅合并非法指定名稱的特定工作表(如銷售表、庫存表、訂單表);三是合并時跳過除首個工作表外的標題行,避免重復。每種方法均自動創建或清空“匯總”表,逐行復制數據并提示完成,確保操作快速準確。
如果您需要將多個工作表中的數據整合到一個匯總表中,手動復制粘貼不僅耗時還容易出錯。通過使用VBA可以實現快速、準確地合并多個工作表的數據。以下是實現該功能的具體步驟:
本文運行環境:DellXPS13,Windows11
一、使用VBA循環合并所有工作表
該方法適用于將當前工作簿中所有工作表的數據(除目標匯總表外)逐行復制到一個新的工作表中,保留原始數據結構。
1、按下Alt+F11打開VBA器。
2、在左側工程資源管理器中右鍵點擊當前工作簿名稱,選擇“插入”->“模塊”。
3、將以下代碼粘貼到代碼窗口中:
Sub合并所有工作表()DimwsAsWorksheetDimtargetSheetAsWorksheetDimnextRowAsLongApplication.ScreenUpdating=FalseonErrorResumeNextSettargetSheet=ThisWorkbook.Sheets("匯總")IftargetSheetIsNothingThenSettargetSheet=ThisWorkbook.Sheets.AddtargetSheet.Name="匯總"ElsetargetSheet.Cells.ClearEndIfnextRow=1ForEachwsInThisWorkbook.SheetsIfws.NametargetSheet.NameThenIfws.UsedRange.Rows.Count>0Thenws.UsedRange.CopyDestination:=targetSheet.Cells(nextRow,1)nextRow=nextRow+ws.UsedRange.Rows.CountEndIfEndIfNextwsApplication.ScreenUpdating=TrueMsgBox"合并完成!"EndSub
4、關閉VBA器,返回Excel,按下Alt+F8,選擇“合并所有工作表”,點擊“運行”即可執行合并。
二、僅合并指定名稱的工作表
當只需要合并部分特定名稱的工作表時,可通過定義工作表名稱數組來精確控制哪些表參與合并。
1、打開VBA器,插入新模塊或使用已有模塊。
三、合并時跳過標題行重復項
此方法用于避免在合并過程中重復粘貼每個工作表的標題行,僅保留第一個工作表的標題。
1、在VBA器中創建新模塊或復用現有模塊。
2、輸入以下代碼:
Sub合并去重標題()DimwsAsWorksheetDimtargetSheetAsWorksheetDimnextRowAsLongDimisFirstSheetAsBooleanApplication.ScreenUpdating=FalseonErrorResumeNextSettargetSheet=ThisWorkbook.Sheets("匯總")IftargetSheetIsNothingThenSettargetSheet=ThisWorkbook.Sheets.AddtargetSheet.Name="匯總"EndIftargetSheet.Cells.ClearnextRow=1isFirstSheet=TrueForEachwsInThisWorkbook.SheetsIfws.NametargetSheet.NameThenIfws.UsedRange.Rows.Count>0ThenIfisFirstSheetThenws.UsedRange.CopytargetSheet.Cells(nextRow,1)nextRow=nextRow+ws.UsedRange.Rows.CountisFirstSheet=FalseElsews.Range(ws.UsedRange.Rows(1).Offset(1).Address&":"&ws.UsedRange.Rows(ws.UsedRange.Rows.Count).Address).Copy_Destination:=targetSheet.Cells(nextRow,1)nextRow=nextRow+ws.UsedRange.Rows.Count-1EndIfEndIfEndIfNextwsApplication.ScreenUpdating=TrueMsgBox"已合并且去除重復標題!"EndSub
3、運行該宏后,除第一個工作表外,其余工作表將從第二行開始復制數據,從而避免標題重復。
以上就是Excel如何使用VBA自動將多個工作表合并成一個_ExcelVBA工作表合并教程的詳細內容,!