文本查找和替换:执行命令不起作用

时间:2016-07-01 13:28:27

标签: excel vba excel-vba ms-word

我无法在VBA中的excel调用的word应用程序中查找和替换文本。

我找到了用于查找和替换word文档中的文本的标准代码,其中包含:"亲爱的先生,"

但是当我想要启动我的代码时,替换的执行根本不起作用。

虽然文档的开放运作良好,但找到了文本。

Sub tester()
    Dim WordApp As Object
    Dim WordDoc As Object

    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True

    template = "template2"
    templateFold = "C:\MyFolder\test\test2\"

    Set WordDoc = WordApp.Documents.Open(templateFold & template & ".docx")

     With WordApp.Selection.Find
        .Text = "Dear"
        .Replacement.Text = "Hello"
        .Forward = True
        .NoProofing = True
        .Execute
    End With
End Sub

您知道我可以做些什么来解决问题吗?

2 个答案:

答案 0 :(得分:1)

根据MSDN的Finding and Replacing Text or Formatting,您的代码只选择文本而不是替换它。

您的代码应该是这样的:

With Selection.Find
    .Text = "Dear"
    .Replacement.Text = "Hello"
    .Execute replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With

希望这有帮助。

干杯。

答案 1 :(得分:0)

Execute本身没有做任何事情。你必须在Replace:=wdReplaceAllReplace:=wdReplaceOne后加入 .Execute Replace:=wdReplaceAll 您还需要在执行

之前添加.Wrap = wdFindContinue