【问题标题】:Opening and then breaking links to a Word document from Excel从 Excel 打开然后断开指向 Word 文档的链接
【发布时间】:2017-12-20 11:34:10
【问题描述】:

我有一个链接到多个 Word 文档 (.docx) 的 Excel 电子表格,这些文档充当模板。

我编写了一个宏,可以从 excel 中打开所需的单词模板(选择的模板取决于单元格 M17 的值)。 word 模板中的链接会随着 word 打开而自动更新。然后我试图打破我打开的文档的链接。这是我目前所拥有的:

Function FnOpeneWordDoc()

   Dim objWord

   Dim objDoc

   Dim path As String

   path = Range("M17")

   Set objWord = CreateObject("Word.Application")

   Set objDoc = objWord.Documents.Open("*file_path*" & path & ".docx")

   objWord.Visible = True

   Application.Wait (Now + TimeValue("0:00:30"))

   objDoc.Fields.Unlink

End Function

我怀疑它不起作用,因为宏试图在文档完全加载之前断开链接(因此现有链接没有机会更新?),这就是我添加等待的原因.不幸的是,这似乎不是解决方案。

【问题讨论】:

  • 这可能对你有帮助wordribbon.tips.net/…
  • 感谢您的回复。不幸的是,这不是我想要的解决方案;我不想一次断开多个文档的链接。相反,我试图从 excel 中断开指向特定 Word 文档(可能是大约 10 个模板之一)的链接。

标签: vba excel ms-word


【解决方案1】:

上面的代码本来可以的,但我没有意识到如果文本在文本框中,代码必须不同。

我努力打破文本框中的链接,并不断收到运行时错误 438。但是,我找到了解决方法:

我在word文档中写了一个sub:

Sub Unlink

Selection.Fields.Unlink

End Sub

然后我从我的 excel 文档中调用了这个宏:

Sub FnOpeneWordDoc()

   Dim objWord
   Dim objDoc

   Set objWord = CreateObject("Word.Application")

   Set objDoc = objWord.Documents.Open("filename")

   objWord.Visible = True

   For i = 1 To objDoc.Shapes.Count

    objDoc.Shapes(i).Select

    objDoc.Application.Run ("unlink")

   Next

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多