我无法在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
您知道我可以做些什么来解决问题吗?
答案 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:=wdReplaceAll
或Replace:=wdReplaceOne
后加入
.Execute Replace:=wdReplaceAll
您还需要在执行
.Wrap = wdFindContinue