更新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文档中的字段时防止重新打开同一文档的主要内容,如果未能解决你的问题,请参考以下文章

打开word时电脑“死机”

是否可以通过脚本更新 Word 文档中的表单字段

使用 MS Access 和 VBA 更新 Ms Word 文档中的(字段代码:数据库)字段

在mongodb中保存或更新文档时如何防止更新“updatedAt”字段?

怎么让word文档在关闭后重新打开是还在原来的位置

word每次打开都要选择文档类型