标签:Word VBA
下面的代码将对指定文件夹中的所有文档中的内容执行指定的替换操作。执行代码后,仅在打开第一个文档后,显示“查找和替换”对话框,供用户在对话框中设置替换的文本,然后按下“全部替换”按钮,接着按下“关闭”按钮。此时,程序会询问用户是否处理指定文件夹中的所有文件,如果单击“是”,则使用刚才在“查找和替换”对话框中输入的设置处理其余文件。
代码如下:
代码语言:javascript复制Sub ReplaceAllInFolder()
Dim blnFirstLoop As Boolean
Dim strFile As String
Dim strPath As String
Dim objDoc As Document
Dim Response As Long
'指定要进行替换操作的文件夹
'你可以修改为你自己的文件夹
strPath = "C:test"
'忽略掉关闭查找和替换对话框时触发的错误
On Error Resume Next
'设置是否在第一次循环时执行的语句
'用于仅对第一个文档显示查找和替换对话框
blnFirstLoop = True
'设置文件夹目录及批量处理的文件类型
strFile = Dir$(strPath & "*.doc*")
'遍历文件夹中的文档
While strFile <> ""
'打开文档
Set objDoc = Documents.Open(strPath & strFile)
If blnFirstLoop Then
'仅在第一次循环时显示查找和替换对话框
Dialogs(wdDialogEditReplace).Show
blnFirstLoop = False
Response = MsgBox("想要处理这个文件中其他文件吗?",vbYesNo)
If Response = vbNo Then Exit Sub
Else
'遍历文档文件,执行替换操作而不会再显示对话框
With Dialogs(wdDialogEditReplace)
.ReplaceAll = 1
.Execute
End With
End If
'保存且关闭修改后的文档
objDoc.Close SaveChanges:=wdSaveChanges
'下一个文档
strFile = Dir$()
Wend
End Sub