我正在尝试在大量的.doc文件(大约200个文件)中执行查找和替换算法。
我需要找到并替换大约40个字符串。我需要定期执行此类操作,因此我觉得创建脚本是一个非常好的案例。
答案 0 :(得分:1)
唯一的重要部分是替换,但你可以记录&修改
Sub Foo()
'path
Const PATH As String = "C:\xxx\"
Dim doc As Word.Document
Dim fn As String: fn = Dir$(PATH & "*.doc")
With Application
'loop matching files
Do While Len(fn)
'open
Set doc = .Documents.Open(PATH & fn)
'replace text
replaceInDoc doc, "OLD TEXT", "NEW TEXT"
replaceInDoc doc, "MORE OLD TEXT", "MORE NEW TEXT"
'save, close
doc.Save
doc.Close
'get next file
fn = Dir$()
Loop
End With
End Sub
Sub replaceInDoc(doc As Word.Document, find As String, replaceWith As String)
'do the replace
With doc.Content.find
.Text = find
.Replacement.Text = replaceWith
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute replace:=wdReplaceAll
End With
End Sub
显然在副本上测试一下。
答案 1 :(得分:0)
在我看来,有两种选择:
创建您自己的VBA脚本代码来执行此操作。您可以使用内置于MS Office帮助系统的VBA编辑器来了解必须使用的MS Word文档对象模型的哪些属性和功能才能完成任务。
查找并使用某些第三方商用软件进行此项工作。这项任务有不同供应商的几个程序。
第二种方法需要相当少的时间和精力。除非您设法通过OLE自动化控制MS Word来访问需要替换文本的文档,否则批处理文件将无法完成工作。