前景提要
前面我們分享了如何批量創建工作薄的方法,有了工作薄之後,我們自然是要針對工作薄進行操作了,日常工作中常用的工作薄的操作就是合併多個工作薄的內容,很多童鞋都覺得這一塊的操作非常的困難,也非常的難實現,其實並不難,今天開始,我將會帶著各位童鞋一起來學習下如何實現多個工作薄的匯總的操作的
場景模擬
昨天我們模擬的場景是,將一個工作薄的內容拆分到多個獨立的工作薄中去,今天我們逆著來,將多個獨立的工作薄,匯總合併成為一個新的工作薄,今天我們主要講一個外部框架,如果批量打開當前的每一個工作薄
方法分析
說到打開,大家肯定會想到open方法了,沒錯想要打開工作薄,我們需要使用workbook的open方法,那麼打開什麼文件呢?肯定是除去當前文件夾的所有文件咯,既然是當前文件夾,那麼你應該知道用什麼方法咯,dir遍歷循環,這是我們在之前第一序列中分享過的知識點了,看吧,之前分享的基礎知識還是會用到的,來看看實例
代碼區
這是我們上一節分享拆分的數據,本節我們來繼續使用,前面我們已經說了,想要合併多個工作薄,你首先要打開工作薄,所以我們現在來看看如何打開工作薄
Sub test()
Dim pathn
pathn = ThisWorkbook.Path
f = Dir(pathn & "\")
Do While f <> ""
If f <> "test.xlsm" Then
Workbooks.Open (pathn & "\" & f)
End If
f = Dir()
Loop
End Sub
來看看效果,所有的工作薄文件都已經被打開了,等待我們下一步的操作
是不是非常的完美
代碼分析
pathn = ThisWorkbook.Path
此處的目的是獲得當前文件夾的位置,即路徑,上節我們已經說過這個方法了。
然後就是前面學習過的dir的方法的使用了,這裡我們就不多說了,我調試一下,大家看看效果就知道了。
就是這樣一步一步的往下循環,遍歷打開,如果在這個過程中正好碰到我們這個測試工作薄,會選擇跳過的,如果沒有這句話,雖然不會報錯,但是程序會中斷,並且導致數據丟失,這並不是我們想要的效果,所以這裡一定要加一個判斷
Workbooks.Open (pathn & "\" & f)
Workbooks.Open就是打開工作薄的意思,參數我們只需要提供一個,就是路徑,路徑我們可以用之前得到的pathn加上我們通過dir遍歷得到的文件名稱合併起來得到一個完整的路徑。