更新word文档中的字段时防止重新打开同一文档
Posted
技术标签:
【中文标题】更新word文档中的字段时防止重新打开同一文档【英文标题】:Prevent reopening of same document when updating of fields in word document 【发布时间】:2017-12-02 13:33:52 【问题描述】:我尝试通过更新word文档中的字段来更新所有链接的图表,因为图表都属于同一个excel doc,它会导致同一个excel doc被一遍又一遍地重新打开。有没有办法检测到相同的 excel 文档并且只打开一次?
Sub UpdateDocument()
Dim WordApplication As Word.Application
Dim WordDoc As Word.Document
Dim updateLinks As Boolean
Dim Filepath As String
Filepath = ThisWorkbook.Sheets("Sheet1").Range("B1").Cells.Value
Set WordApplication = CreateObject("Word.Application")
'capture the original value
updateLinks = WordApplication.Options.UpdateLinksAtOpen
'temporarily disable
WordApplication.Options.UpdateLinksAtOpen = False
Set WordDoc = WordApplication.Documents.Open(Filepath)
Application.DisplayAlerts = False
WordDoc.Fields.Update
WordDoc.Save
WordDoc.Close
'## reset the previous value and Quit the Word Application
WordApplication.Options.UpdateLinksAtOpen = updateLinks '
WordApplication.Quit
End Sub
【问题讨论】:
【参考方案1】:这个例子不清楚。实际的例程从单元格 B1 的 Excel 电子表格中获取 Word 文档路径,显式打开该文档,更新表格,然后显式关闭该文档。仅凭这一点,它当然会多次打开和关闭一个文档。
我们没有看到调用 UpdateDocument 的循环。这取决于调用循环的设计方式。没有看到这一点,猜测会将 CreateObject 移到 UpdateDocument 之外。让 UpdateDocument 打开文档但不关闭它。循环完成后关闭所有 Word 文档。如果文件被打开,再次调用时会更新。
【讨论】:
以上是关于更新word文档中的字段时防止重新打开同一文档的主要内容,如果未能解决你的问题,请参考以下文章
使用 MS Access 和 VBA 更新 Ms Word 文档中的(字段代码:数据库)字段