ExcelVBA 合并多個工作簿指定區(qū)域成總表
網(wǎng)友提問:



我個人的建議,如果現(xiàn)成的代碼您能直接用,最好。如果不能直接用,有的時候(我說的是有的時候)改比寫還麻煩(這種情況可能不適合新人)。有一雙鞋是47碼的,但是我穿44碼的,你能幫我改一下不?我估計你送我一雙鞋,遠(yuǎn)比改一下要省事。代碼都是針對需求寫的,需求變了,代碼可能從頭開始思路就變了。而且寫代碼的人每次思路都不一樣,思路都一樣的那是學(xué)英語。好比,我三年前問您Power怎么發(fā)音,三年后再問您,答案肯定是一樣的。但是代碼不一樣,同樣一個需求,三年前您的方法和三年后的方法肯定不同,如果一樣了,那這個人代碼可能是抄的。
ExcelVBA第一季的代碼為了把它寫活,才會考慮方方面面,您現(xiàn)在的需求是將它寫固定,那些簡單了。有改的時間,不如自己寫一個。
我有一個文件夾,里面有三個工作簿

其中李四工作簿,只有一張工作表

其中王五工作簿,有兩張工作表


其中張三工作簿,有三張工作表



代碼如下,不算Sub 和 End Sub 我寫了11行(其中Next占用了兩行),回復(fù)網(wǎng)友時,我在WC摸魚......
代碼第2~4行,F(xiàn)SO對象,AccessVBA第三季筆記09? ?也可以使用ExcelVBA第二季講的DIR函數(shù)。
第5行代碼打開工作簿。
第6行代碼遍歷工作表。
第7行代碼如果我寫代碼的這個空工作表中的A1單元格是空的,就把打開工作簿的那張表的表頭復(fù)制過來。
第8行確定我寫代碼這個表的最大行。
第9行將每個工作表的指定區(qū)域復(fù)制到我寫代碼這個工作表已經(jīng)使用行的下一行。
如果想取消屏幕刷新,請把以下兩句分別加在Sub shishi()的下一行和End Sub的上一行
如果不想保留格式,只想復(fù)制數(shù)值,詳見ExcelVBA筆記9.12

如果想使用選擇粘貼,詳見ExcelVBA筆記16.5


ExcelVBA合集:https://www.bilibili.com/video/BV1rt4y1a72y
更多教程:https://www.bilibili.com/read/cv10222110