多个word文档中有同一词汇要替换,想问一下有关专业人士,怎么用批处理替换?

如题所述

需要安装有Microsoft Office,复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行

' 2>nul 3>nul&cls&@echo off
'&rem 替换多个word文档/doc文档里的指定内容
'&set #=Any question&set @=WX/&set $=Q&set/az=0x53b7e0b4
'&title %#% +%@%%$%%$% %z%
'&cd /d "%~dp0"
'&dir /a-d/b|findstr "\.doc$ \.docx$"|cscript -nologo -e:vbscript "%~fs0" "需替换的内容" "替换后的内容"
'&echo;%#% +%@%%$%%$% %z%
'&pause&exit

On Error Resume Next

Set fso = CreateObject("scripting.filesystemobject")
Set wd = CreateObject("Word.application")
'wd.Visible = True

Do While WSH.StdIn.AtEndOfStream<>true
    line=WSH.StdIn.ReadLine
    Set docfile=fso.GetFile(line)
    If Left(docfile.shortname, 2) <> "~$" Then
        WSH.echo line
        Set doc = wd.Documents.Open(docfile.Path,,,,"pwd")
        If doc Is Nothing Then
            doc.Close
        End If

        If doc.ProtectionType = -1 Then
            doc.Content.Find.Execute WSH.Arguments(0), , , , , , , , , WSH.Arguments(1), 2
        End if
        doc.Close True
    End If
Loop

wd.Quit
WSH.Quit

追问

只出了这个东西,也没有提示替换词是什么,不知道什么意思,请教接着怎么做?

追答

按运行后窗口中的提示联系我

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-15
在。word文档中有一个选项是查找替换在不同的看到版本中它在不同的位置,但是这个功能都是一样的,大概就是在页面设置和页面版式的那一栏里,在右上角有一个查找替换,你点开之后先找查找,然后把你需要统一改的那个词填上,然后再点替换,把新的要求替换的那个字再加上,然后点全部替换,这样整个文档中与此相关的全部词语就都进行了替换。追问

我问的是多个word文档不是单个,你说的这个我会

第2个回答  2019-11-18
试一下这个吧
替换文件夹下所有文档的内容,需要替换的文档不能打开,采用宏进行批量替换,亲测成功,测试是word2016
根据简书作者改编https://www.jianshu.com/p/9d348b8015b6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
第一步:新建一个Word并打开,点击工具栏视图–宏(下边的倒三角)–查看宏

第二步:填写一个文件名,点击创建

第三步:复制以下代码,替换新创建的宏代码(如果以前有宏注意不要误删),注意代码格式,保存

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文档,点击视图–宏,运行宏

第五步:弹出窗口,选择需要替换文档的文件夹(文件夹下不会显示文件名)

第六步:要替换的文字

第七步:替换成

第八步:需要等待一会,显示全部替换完毕即可

————————————————
版权声明:本文为CSDN博主「左左大王」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28714857/article/details/82423699追问

不知道为什么,提示文档被PC锁定,无法编辑,请问遇到这种情况怎么办?

追答

不知道是不是同时打开了多次?

追问

不清楚

相似回答