Board logo

標題: [轉貼] VBA-批次插入多個文字檔 [打印本頁]

作者: 偉婕    時間: 2010-6-30 22:29     標題: VBA-批次插入多個文字檔

原發表者:leonchou (2005-04-18)

這是網友曾問我的問題: 
有100個文字檔 (檔名都不一樣),想要插入文章之中,但是 Word的插入檔案功能,每次只能插入一個檔案,不知是否可以一次就將所有的檔案插入??
我找來找去, Word 似乎真的沒有一次插入多個檔案的功能~
只好用巨集來做了...
 
請新增並執行以下這個巨集,它會詢問檔案存放的路徑,然後自動將該目錄下所有純文字檔 (*.txt) 插入目前文件裡。
這個例子也示範了批次處理檔案的基本方式 (Dir)。
PS. 程式行號在此僅供說明,一般並非必要。
 
Sub 插入文字檔()
1 mypath = Options.DefaultFilePath(wdDocumentsPath)
2 mypath = InputBox("請輸入路徑名稱 (例如 C:\Temp):", "插入文字檔", mypath)
3 If mypath = "" Then Exit Sub Else On Error GoTo Z
4 If Right(mypath, 1) <> "\" Then mypath = mypath & "\"
5 myfile = Dir(mypath & "*.txt", vbDirectory)
6 While myfile <> ""
7  Selection.InsertFile mypath & myfile
8  myfile = Dir()
9 Wend
Z
End Sub
 
〔依程式行號說明〕 
1 設定變數 mypath = Word 預設的文件儲存路徑.
2 設定變數 mypath = 輸入方塊 (預設為 mypath) 的回傳結果.
3 若在輸入空白或按了取消, 傳回空字串, 則結束巨集;否則設定以下程式出現錯誤時, 跳到 Z 行
4 因 mypath 代表一個路徑, 若它的結尾不是 \ 符號, 則補上.
5 設定變數 myfile = 在 mypath 路徑下搜尋所有 txt 檔所得到的第一個檔名。
6 執行迴圈, 直到該路徑下的 txt 檔處理完畢為止.
7 在編輯插入點插入檔案.
8 將變數 myfile 設為下一個找到的 txt 檔.
9 結束 While...Wend 迴圈.
Z 不做任何動作, 只供發生檔案存取錯誤時跳至此處 (等於結束程式)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)