Word VBA技术:对文件夹中的所有文档进行批量替换操作

2023-02-24 20:28:48 浏览数 (1)

标签: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

0 人点赞