VBA查找并替换单词文本框

时间:2020-10-21 19:23:25

标签: excel vba ms-word

我有一个Excel程序。

正在处理Word文档并查找/替换文本。我的代码看起来像这样

    Dim wApp As Word.Application
Dim wDoc As Word.Document

Set wApp = CreateObject("Word.Application")
wApp.Visible = False
Set wDoc = wApp.Documents.Open(myFile)
                        
With wDoc.Content.Find
    .Text = "<Customer Name>"
    .Replacement.Text = "Customer Name"
    .Wrap = wdFindContinue
    .MatchWholeWord = True
    .Execute Replace:=wdReplaceAll
                
    .Text = "<Billing Address>"
    .Replacement.Text = "Billing Address"
    .Wrap = wdFindContinue
    .MatchWholeWord = True
    .Execute Replace:=wdReplaceAll
End With

哪个效果很好。

但是单词文档在文本框中有一些单词,我想在其中查找并替换,但是我无法使其工作(上面的代码仅搜索单词文档的主体,而不是文本框)

我尝试过

    wDoc.Shapes.Range(Array("Text Box 14")).Select
With wDoc.Selection.Find
    .Text = "<Profile Code>"
    .Replacement.Text = "Profile Code"
    .Wrap = wdFindContinue
    .MatchWholeWord = True
    .Execute Replace:=wdReplaceAll
End With

但是没有用。 我收到一个对象不支持此属性或方法的错误消息

请帮助!

1 个答案:

答案 0 :(得分:1)

提供的文本框名为“文本框14”,以下内容将为您工作(在O365中对我有效)

   With wDoc.Shapes("Text Box 14").TextFrame.TextRange.Find
      .Text = "<Profile Code>"
      .Replacement.Text = "Profile Code"
      .Wrap = wdFindContinue
      .MatchWholeWord = True
      .Execute Replace:=wdReplaceAll
   End With