我正在尝试使用 Excel VBA 更新 Word 文档。在下面的链接中找到了此代码,但它对我来说不起作用。
它逐步执行代码,但 Word 文档未更新。此时,我所做的只是在信件上插入今天的日期。
Sub test()
Dim ws As Worksheet
Dim objWord As Object
Dim i As Integer
Dim strValue As String
Set ws = ThisWorkbook.Sheets("CustomerNames")
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Open "C:\Users\kindyd1\Desktop\COPE\receipt_letter.docx"
objWord.Activate
With objWord.ActiveDocument.Content.Find
.Text = "<<DateToday>>"
.Replacement.Text = Format(Date, "yyyy/mm/dd")
.Execute Replace:=wdReplaceAll
End With
End Sub
答案1
根据您在上面的评论中提供的其他信息,您使用的 VBA 代码所遇到的问题至少有一部分的答案与后期绑定有关。wdReplaceAll
如果您的解决方案使用后期绑定,则您的代码引用了不可用的 Word 设置。
可以通过向 Microsoft Word 添加项目引用来解决该问题,然后将自动化绑定更改为早期绑定,然后wdReplaceAll
可以由基于 Excel 的宏正确理解,或者......使用代表的绝对值wdReplaceAll
,即值 2。
以下是一篇有关早期绑定与晚期绑定的文章供您阅读: https://support.microsoft.com/en-us/help/245115/using-early-binding-and-late-binding-in-automation