打开然后断开Excel中Word文档的链接

问题描述 投票:0回答:1

我有一个excel电子表格链接到多个Word文档(.docx),它们充当模板。

我编写了一个宏,从excel打开所需的单词模板(选择的模板取决于单元格M17的值)。单词模板中的链接会在单词打开时自动更新。然后我试图打破我打开的文档的链接。这是我到目前为止:

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

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

excel vba excel-vba word-vba
1个回答
0
投票

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

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

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

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
© www.soinside.com 2019 - 2024. All rights reserved.