Я довольно новичок в VBA, пытаюсь заполнить шаблон слов из Excel с помощью VBA в Excel. Я использую следующий код для вставки даты в тег в документе 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
Но это не заменит текст в основной части моего текстового документа.
Я пытался сделать WordDoc.ActiveDocument.Content.Find
, но это тоже не работает. Если я точно скопирую код и заменю WordDoc
на ActiveDocument
и запуском его в слове 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
Если я запускаю этот код в Word VBA, он заменяет тег, почему бы не запустить его из Excel?
Редактировать: Office 2016