關(guān)于怎樣把幾個(gè)excel合成一個(gè)文件,怎樣把幾個(gè)excel合成一個(gè)這個(gè)問(wèn)題很多朋友還不知道,今天小六來(lái)為大家解答以上的問(wèn)題,現(xiàn)在讓我們一起來(lái)看看吧!
1、操作步驟:原始數(shù)據(jù)所在工作簿包含多個(gè)格式相同的工作表,只不過(guò)每個(gè)工作表內(nèi)容不同,比如說(shuō)不同人名的工作表數(shù)據(jù)或者不同部門(mén)填寫(xiě)的數(shù)據(jù)。
2、2、在原始數(shù)據(jù)同目錄下新建一個(gè)工作簿,建立兩個(gè)工作表,名稱分別為“首頁(yè)”和“合并匯總表”。
3、3、按Alt+F11進(jìn)入VBA代碼編輯和調(diào)試界面。
4、4、根據(jù)下圖提示,插入一個(gè)模塊。
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 "沒(méi)有選擇文件!請(qǐng)重新選擇一個(gè)被合并文件!", vbInformation, "取消" ? ?Else ? ? ? ?***.Open Filename:=MyFileName ? ? ? ?Num = ActiveWorkbook.Sheets.Count ? ? ? ?MyName = ***.Name ? ? ? ?Set DataSource = Application.InputBox(prompt:="請(qǐng)選擇要合并的數(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、在“首頁(yè)”工作表中按下圖示范插入一個(gè)窗體控件并指定宏為插入的代碼名稱。
6、7、點(diǎn)擊“首頁(yè)”工作表中插入的按鈕,根據(jù)提示,瀏覽到原始數(shù)據(jù)工作簿。
7、8、用鼠標(biāo)選擇要合并的數(shù)據(jù)范圍。
8、注意:每個(gè)工作表數(shù)據(jù)可能不一樣,比如說(shuō)有的是10行數(shù)據(jù),有的是30行數(shù)據(jù)。
9、在這里我們可以用鼠標(biāo)選擇任意工作表的一個(gè)較大范圍,比如說(shuō)A1:D100,保證比最多行數(shù)的工作表數(shù)據(jù)還多就可以,一會(huì)再刪除空行。
10、9、點(diǎn)擊確定按鈕,待代碼運(yùn)行完畢后,所有的數(shù)據(jù)就都合并到了“合并匯總表”中。
11、注意:1)A列的文本說(shuō)明右側(cè)的數(shù)據(jù)來(lái)自于原始數(shù)據(jù)表的哪個(gè)工作表;2)數(shù)據(jù)之間會(huì)有一些空行,可以通過(guò)篩選刪除。
12、10、選中全部數(shù)據(jù)區(qū)域,執(zhí)行自動(dòng)篩選。
13、然后選擇其中一個(gè)字段,選擇“空白”和標(biāo)題內(nèi)容。
14、1然后將篩選出來(lái)的無(wú)用行鼠標(biāo)右鍵刪除,再刪除A列整列即可,完成效果如下圖:以上就是excel如何快速把多個(gè)工作表合并到一個(gè)excel表的方法。
本文分享完畢,希望對(duì)大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,與本網(wǎng)站立場(chǎng)無(wú)關(guān)。財(cái)經(jīng)信息僅供讀者參考,并不構(gòu)成投資建議。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。 如有侵權(quán)請(qǐng)聯(lián)系刪除!