查找/替换.doc批处理?

时间:2012-08-30 11:37:59

标签: vba batch-file replace ms-word

我正在尝试在大量的.doc文件(大约200个文件)中执行查找和替换算法。

我需要找到并替换大约40个字符串。我需要定期执行此类操作,因此我觉得创建脚本是一个非常好的案例。

  1. 是否可以通过单词来做到这一点?
  2. 如果没有,是否可以使用.batch文件执行此操作?
  3. 如果没有,我应该从哪里开始?

2 个答案:

答案 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)

在我看来,有两种选择:

  1. 创建您自己的VBA脚本代码来执行此操作。您可以使用内置于MS Office帮助系统的VBA编辑器来了解必须使用的MS Word文档对象模型的哪些属性和功能才能完成任务。

  2. 查找并使用某些第三方商用软件进行此项工作。这项任务有不同供应商的几个程序。

  3. 第二种方法需要相当少的时间和精力。除非您设法通过OLE自动化控制MS Word来访问需要替换文本的文档,否则批处理文件将无法完成工作。