Vba替换word文档中的某些文本?

时间:2017-05-11 10:51:21

标签: excel vba ms-word

我使用以下代码尝试替换Word文档中的某些文本并将副本另存为。

这是我的代码:

Sub Macro1()
Dim app As Word.Application
Dim doc As Word.Document

    Set app = CreateObject("Word.Application")
    app.Visible = True
    Set doc = app.Documents.Open("G:\QUALITY ASSURANCE\03_AUDITS\PAI\templates\Audit Announcement Template.docx")


    With app.doc.Content.Find
            .Text = "Insert Date"
            .Replacement.Text = "Hello"
            .Wrap = wdFindContinue
            .Execute Replace:=wdReplaceAll
        End With


    doc.SaveAs Filename:="G:\QUALITY ASSURANCE\03_AUDITS\PAI\templates\Audit Announcement Template2.doc", _
    FileFormat:=wdFormatDocument



    doc.Close
    app.Quit

End Sub

我在这一行收到编译错误:

With app.doc.Content.Find

有人可以告诉我哪里出错了吗?

1 个答案:

答案 0 :(得分:1)

您的With app.doc.Content.Find不正确,因为doc不是app对象的成员,而是您创建的变量。

更改为:With doc.Content.Find

当您打开.docx并且您可能希望保存时,您需要:

doc.SaveAs Filename:="G:\path\file.docx", FileFormat:=WdSaveFormat.wdFormatDocumentDefault

您是早期约束(通过引用),因此不需要CreateObject()而是您可以简单地:

Set app = new Word.Application