快速將多個excel表合併成一個excel表

應用場景:有不少張excel,並且excel表裏面的結構基本同樣,如何快速將這些excel合併在一個excel頁面,便於後期分析和統計html

技術實現:利用excel表的宏計算實現。app

注意:金山的WPS沒有宏計算功能。只能用microsoft excel來實現。工具

具體以下oop

一、咱們須要把多個excel表都放在同一個文件夾裏面,並在這個文件夾裏面新建一個excel。如圖所示:spa

二、用microsoft excel打開新建的excel表,並右鍵單擊sheet1,找到「查看代碼」,單擊進去。進去以後就看到了宏計算界面。如圖所示:excel

三、而後咱們把下面這些宏計算的代碼複製進去,而後找到工具欄上面的「運行」下的「運行子過程/用戶窗體」,代碼以下,如圖所示: code

sub 合併當前目錄下全部工做簿的所有工做表() 
dim mypath, myname, awbname 
dim wb as workbook, wbn as string 
dim g as long 
dim num as long 
dim box as string 
application.screenupdating = false 
mypath = activeworkbook.path 
myname = dir(mypath & "\" & "*.xls") 
awbname = activeworkbook.name 
num = 0 
do while myname <> "" 
if myname <> awbname then 
set wb = workbooks.open(mypath & "\" & myname) 
num = num + 1 
with workbooks(1).activesheet 
.cells(.range("a65536").end(xlup).row + 2, 1) = left(myname, len(myname) - 4) 
for g = 1 to sheets.count 
wb.sheets(g).usedrange.copy .cells(.range("a65536").end(xlup).row + 1, 1) 
next 
wbn = wbn & chr(13) & wb.name 
wb.close false 
end with 
end if 
myname = dir 
loop 
range("a1").select 
application.screenupdating = true 
msgbox "共合併了" & num & "個工做薄下的所有工做表。以下:" & chr(13) & wbn, vbinformation, "提示" 
end sub

關於[A65536]的含義: 在1995-2006年,excel工做簿包含65536行,但如今的office 2007中工做簿包含1048576行。[A65536]就是A列的最後一行的意思,這段話的意思就是,從A列最後一行向上找,找到有數據的行爲止。 若是是[B65536]則是從列最後一行向上找,找到有數據的行爲止。orm

四、運行以後,等待幾秒鐘,等運行完畢,就是合併完成以後,會有提示,點肯定就能夠了。查看合併後的數據,就是同一個文件夾裏面17個excel表數據合併後的結果。效果如圖所示。htm

 ----------------------------------------------------------------------------------------------------------------------------------------------------------blog

參考資料:https://jingyan.baidu.com/article/f0062228d16ba9fbd3f0c82b.html?qq-pf-to=pcqq.c2c       //如何快速把多個excel表合併成一個excel表

相關文章
相關標籤/搜索