除非注明word批量替換文件內容word批量替換文件內容,文章均為 戰戰如瘋 原創,轉載請保留鏈接: /cat4/411.html,VBA交流群。
之前我們講過一些excel vba操作word的例子,這節我們再來看一個VBA在Word中應用的實例。現在我手上有很多word文檔,現在我需要將所有Word中的某個詞改成另一個詞,比如在實際工作中需要將所有客戶報告中的聯系電話改為新的號碼。之前我們都是在Excel中操作Word,這次我們直接在Word中運行宏。在Word中運行VBA和在Excel中相似,首先必須要啟用宏,然后Alt+F11就可以打開宏編輯界面輸入代碼。
這個問題的思路很簡單,遍歷每一個Word文件,對每個文件中的某個詞進行全部替換即可。Word VBA中的遍歷和Excel是相同的,用Dir函數即可。提到替換我們首先應該想到Word中有一個替換的功能,可以一次性替換文檔中的某個詞,如果我們錄制出這個替換的宏,然后再加上個循環的代碼這不就可以完成任務了嗎?看下面的代碼
Sub 宏1()
Dim ,
= .Path & "\"
= Dir( & "*.docx")
Do While ""
.Open := & , :=False
().
'下面的宏是錄制的
.Find.
.Find..
With .Find
.Text = "戰戰如瘋"
..Text = "戰戰不瘋"
. = True
.Wrap =
. = False
. = False
. = False
. = True
. = False
. = False
. = False
End With
.Find. :=
'上面的代碼是錄制的
.Save
.Close
= Dir
Loop
End Sub
因為我們這個宏是在Word中運行的,所以沒有之前講過的在Excel中調用Word那么復雜,可以直接用代碼當前文檔,Open方法打開,將打開的文檔設為活動文檔(),中間一大段都是錄制的,感興趣的可以百度下各個參數是什么意思。然后保存、關閉活動文檔,Dir下一個文檔。
除了錄制宏我們在之前“VBA批量生成Word報告“中講了一種查找替換的方法,在這里自然也是可以用的
Sub 宏2()
Dim ,
= .Path & "\"
= Dir( & "*.docx")
Do While ""
.Open := & , :=False
().
Do While .Find.("戰戰不瘋") '尋找客戶這個關鍵詞,將其用表格中的姓名來代替
.Text = "戰戰如瘋"
. Unit:=6
Loop
.Save
.Close
= Dir
Loop
End Sub
同樣的循環遍歷,只不過替換代碼換了下,可以參考之前我們用Excel操作Word的例子,用法是完全相同的。
本節示例文件下載地址:。
0