为什么Excel VBA无法在Word文档中找不到并替换

nri*_*man 2 excel vba ms-word

我是VBA的新手,尝试使用Excel中的VBA从Excel中填写单词模板。我正在使用以下代码将Date放入word文档的标签中:Dim Template As String

Dim WordDoc, WordApp As Object
Dim Template as String
On Error Resume Next                                                      
Set WordApp = GetObject("Word.Application")                                 
If Err.Number <> 0 Then                                                     
    Err.Clear                                                               
    Set WordApp = CreateObject("Word.Application")                          
    WordApp.Visible = True                                                  
End If
Template = "C:\Users\me\Dropbox\me - Summer 2019\RMA_Log\00059-001_E_24May19_Form Returned Authorization.docx"
Set WordDoc = WordApp.Documents.Open(FileName:=Template, ReadOnly:=False)
With WordDoc.Content.Find                                                   
    .Text = "<Date>"                                                        
    .Replacement.Text = "06-06-2019"                                        
    .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue                                     
End With
Run Code Online (Sandbox Code Playgroud)

但这不会替换我的Word文档主体中的任何文本。

我已经尝试过了,WordDoc.ActiveDocument.Content.Find但是那也行不通。如果我精确地复制了代码并替换WordDoc为ActiveDocumentVBA并在单词VBA中运行,则文本将被替换。

Dim Template As String
Template = "C:\Users\me\Dropbox\me - Summer 2019\RMA_Log\00059-001_E_24May19_Form Returned Authorization.docx"

With ActiveDocument.Content.Find                                                   
    .Text = "<Date>"                                                        
    .Replacement.Text = "06-06-2019"                                        
    .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue                                     
End With
Run Code Online (Sandbox Code Playgroud)

如果我在Word VBA中运行此代码,它将替换标记,为什么不能从Excel运行此代码呢?

编辑:Office 2016

小智 6

Excel不知道是什么wdReplaceAll或者wdFindContinue是。

引用Word对象模型(Tools > References > Microsoft Word XX Object Model)。

而且,如果您Option Explicit将代码放在顶部,则可以突出显示该代码。