2016-07-01 72 views
-1

我很難找到並替換由VBA中的excel調用的單詞應用程序中的文本。文本查找和替換:執行命令不起作用

我發現標準代碼,查找和替換包含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 

你知道我能做些什麼來解決問題嗎?

+0

嘗試使用.Execute Forward:= True? –

+0

愚蠢,但可以嘗試將'.Forward = True'作爲第一件事(在.Text =「Dear」'上方)。或者,你是不是指'用WordDoc.Selection.Find'? – BruceWayne

+0

可悲的是,兩者都不工作... – raphc

回答

0

Execute自己不做任何事情。你有後 .Execute Replace:=wdReplaceAll 您還需要執行

+0

謝謝你的回覆,但它仍然不工作... – raphc

1

根據MSDN的Finding and Replacing Text or Formatting代碼前加.Wrap = wdFindContinue到wrtite Replace:=wdReplaceAllReplace:=wdReplaceOne只選擇文本,而不是替換它。

你的代碼應該是這樣的:

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

希望這有助於。

乾杯。

+0

謝謝你的回覆,但它仍然不工作... – raphc

+0

這很奇怪,它適用於我:\ –

+0

可能這是我的Excel參數或我的環境錯了嗎? – raphc