關于怎樣把幾個excel合成一個文件,怎樣把幾個excel合成一個這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、操作步驟:原始數(shù)據(jù)所在工作簿包含多個格式相同的工作表,只不過每個工作表內(nèi)容不同,比如說不同人名的工作表數(shù)據(jù)或者不同部門填寫的數(shù)據(jù)。
2、2、在原始數(shù)據(jù)同目錄下新建一個工作簿,建立兩個工作表,名稱分別為“首頁”和“合并匯總表”。
3、3、按Alt+F11進入VBA代碼編輯和調(diào)試界面。
4、4、根據(jù)下圖提示,插入一個模塊。
5、5、將下述代碼粘貼到模塊空白處:Sub CombineSheetsCells() ? ?Dim wsNewWorksheet As Worksheet ? ?Dim cel As Range ? ?Dim DataSource, RowTitle, ColumnTitle, SourceDataRows, SourceDataColumns As Variant ? ?Dim TitleRow, TitleColumn As Range ? ?Dim Num As Integer ? ?Dim DataRows As Long ? ?DataRows = 1 ? ?Dim TitleArr() ? ?Dim Choice ? ?Dim MyName$, MyFileName$, ActiveSheetName$, AddressAll$, AddressRow$, AddressColumn$, FileDir$, DataSheet$, myDelimiter$ ? ?Dim n, i ? ?n = 1 ? ?i = 1 ? ?Application.DisplayAlerts = False ? ?Worksheets("合并匯總表").Delete ? ?Set wsNewWorksheet = Worksheets.Add(, after:=Worksheets(Worksheets.Count)) ? ?***.Name = "合并匯總表" ? ?MyFileName = Application.GetOpenFilename("Excel工作薄 (*.xls*),*.xls*") ? ?If MyFileName = "False" Then ? ? ? ?MsgBox "沒有選擇文件!請重新選擇一個被合并文件!", vbInformation, "取消" ? ?Else ? ? ? ?***.Open Filename:=MyFileName ? ? ? ?Num = ActiveWorkbook.Sheets.Count ? ? ? ?MyName = ***.Name ? ? ? ?Set DataSource = Application.InputBox(prompt:="請選擇要合并的數(shù)據(jù)區(qū)域:", Type:=8) ? ? ? ?AddressAll = DataSource.Address ? ? ? ?ActiveWorkbook.ActiveSheet.Range(AddressAll).Select ? ? ? ?SourceDataRows = Selection.Rows.Count ? ? ? ?SourceDataColumns = Selection.Columns.Count ? ? ? ?Application.ScreenUpdating = False ? ? ? ?Application.EnableEvents = False ? ? ? ?For i = 1 To Num ? ? ? ? ? ?ActiveWorkbook.Sheets(i).Activate ? ? ? ? ? ?ActiveWorkbook.Sheets(i).Range(AddressAll).Select ? ? ? ? ? ?Selection.Copy ? ? ? ? ? ?ActiveSheetName = ActiveWorkbook.***.Name ? ? ? ? ? ?Workbooks(***.Name).Activate ? ? ? ? ? ?ActiveWorkbook.Sheets("合并匯總表").Select ? ? ? ? ? ?ActiveWorkbook.Sheets("合并匯總表").Range("A" & DataRows).Value = ActiveSheetName ? ? ? ? ? ?ActiveWorkbook.Sheets("合并匯總表").Range(Cells(DataRows, 2), Cells(DataRows, 2)).Select ? ? ? ? ? ?Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SkipBlanks:=False, Transpose:=False ? ? ? ? ? ?Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? False, Transpose:=False ? ? ? ? ? ?Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:=False, Transpose:=False ? ? ? ? ? ?DataRows = DataRows + SourceDataRows ? ? ? ? ? ?Workbooks(MyName).Activate ? ? ? ?Next i ? ? ? ?Application.ScreenUpdating = True ? ? ? ?Application.EnableEvents = True ? ?End If ? ?Workbooks(MyName).CloseEnd Sub6、在“首頁”工作表中按下圖示范插入一個窗體控件并指定宏為插入的代碼名稱。
6、7、點擊“首頁”工作表中插入的按鈕,根據(jù)提示,瀏覽到原始數(shù)據(jù)工作簿。
7、8、用鼠標選擇要合并的數(shù)據(jù)范圍。
8、注意:每個工作表數(shù)據(jù)可能不一樣,比如說有的是10行數(shù)據(jù),有的是30行數(shù)據(jù)。
9、在這里我們可以用鼠標選擇任意工作表的一個較大范圍,比如說A1:D100,保證比最多行數(shù)的工作表數(shù)據(jù)還多就可以,一會再刪除空行。
10、9、點擊確定按鈕,待代碼運行完畢后,所有的數(shù)據(jù)就都合并到了“合并匯總表”中。
11、注意:1)A列的文本說明右側(cè)的數(shù)據(jù)來自于原始數(shù)據(jù)表的哪個工作表;2)數(shù)據(jù)之間會有一些空行,可以通過篩選刪除。
12、10、選中全部數(shù)據(jù)區(qū)域,執(zhí)行自動篩選。
13、然后選擇其中一個字段,選擇“空白”和標題內(nèi)容。
14、1然后將篩選出來的無用行鼠標右鍵刪除,再刪除A列整列即可,完成效果如下圖:以上就是excel如何快速把多個工作表合并到一個excel表的方法。
本文分享完畢,希望對大家有所幫助。
標簽:
免責聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!