word多个文档替换内容

替换文件夹下所有文档的内容,需要替换的文档不能打开,采用宏进行批量替换,亲测成功,测试是word2016
根据简书作者改编https://www.jianshu.com/p/9d348b8015b6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
第一步:新建一个Word并打开,点击工具栏视图–宏(下边的倒三角)–查看宏
word多个文档替换内容_第1张图片
第二步:填写一个文件名,点击创建
word多个文档替换内容_第2张图片
第三步:复制以下代码,替换新创建的宏代码(如果以前有宏注意不要误删),注意代码格式,保存

Sub CommandButton1_Click()
Application.ScreenUpdating = False  '关闭屏幕闪
Dim myFile$, myPath$, i%, myDoc As Object, myAPP As Object, txt$, Re_txt$
Set myAPP = New Word.Application
With Application.FileDialog(msoFileDialogFolderPicker) '允许用户选择一个文件夹
    .Title = "选择目标文件夹"
    If .Show = -1 Then
        myPath = .SelectedItems(1) '读取选择的文件路径
    Else
        Exit Sub
    End If
End With
myPath = myPath & ""
myFile = Dir(myPath & "\*.docx")
txt = InputBox("需要替换的文字:")
Re_txt = InputBox("替换成:")
myAPP.Visible = True '是否显示打开文档
Do While myFile <> "" '文件不为空
Set myDoc = myAPP.Documents.Open(myPath & "\" & myFile)
If myDoc.ProtectionType = wdNoProtection Then '是否受保护
    With myDoc.Content.Find
        .Text = txt
        .Replacement.Text = Re_txt
        .Forward = True
        .Wrap = 2
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=2
    End With
End If
myDoc.Save
myDoc.Close
myFile = Dir
Loop
myAPP.Quit '关掉临时进程
Application.ScreenUpdating = True
MsgBox ("全部替换完毕!")
End Sub

word多个文档替换内容_第3张图片
第四步:回到Word文档,点击视图–宏,运行宏
word多个文档替换内容_第4张图片
第五步:弹出窗口,选择需要替换文档的文件夹(文件夹下不会显示文件名)
word多个文档替换内容_第5张图片
第六步:要替换的文字
word多个文档替换内容_第6张图片
第七步:替换成
word多个文档替换内容_第7张图片
第八步:需要等待一会,显示全部替换完毕即可
word多个文档替换内容_第8张图片

你可能感兴趣的:(WORD)