卡饭网 > word > 正文

VBA批量替换多个WORD文档中的内容

来源:本站整理 作者:东城影 时间:2013-03-07 11:06:29

要想一下子就替换掉很多个WORD文档中的内容,我们得使用VBA的办法才能实现,下面是方法,请过目。

一、前期准备

下面是具体操作步骤。

A,首先将需要批量替换的多个Word文档放在同一文件夹下面。

B,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。

C,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。

D,双击该按钮,进入VB代码编写模式,将以下代码复制进去。

二、命令按钮的代码

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

Dim myPas As String, myPath As String, i As Integer, myDoc As Document

With Application.FileDialog(msoFileDialogFolderPicker)

.Title = "选择目标文件夹"

If .Show = -1 Then

myPath = .SelectedItems(1)

Else

Exit Sub

End If

End With

myPas = InputBox("请输入打开密码:")

With Application.FileSearch

.LookIn = myPath

.FileType = msoFileTypeWordDocuments

If .Execute > 0 Then

For i = 1 To .FoundFiles.Count

Set myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas)

Selection.Find.ClearFormatting

Selection.Find.Replacement.ClearFormatting

With Selection.Find

.Text = "OfficeStudy"

.Replacement.Text = "www.dzwebs.com"

.Forward = True

.Wrap = wdFindAsk

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = True

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

Selection.Find.Execute Replace:=wdReplaceAll

myDoc.Save

myDoc.Close

Set myDoc = Nothing

Next

End If

End With

Application.ScreenUpdating = True

End Sub

保存上面代码,退出VB编辑模式,返回Word文档界面。

单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。

最后,就可以进行测试:再次点击按钮,就会发现该文件夹下面的所有WORD文档中的"OfficeStudy"被替换为"www.dzwebs.com"了。

说明:在实际使用中,可以更改上面代码中的""引号里的字符内容为实际需要批量替换的内容即可。如下所示。

.Text = "OfficeStudy"

.Replacement.Text = www.dzwebs.net

相关推荐