我有一个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
我怀疑它无法正常工作,因为宏在文档完全加载之前试图破坏链接(因此现有的链接没有机会更新?),这就是我添加等待的原因。不幸的是,这似乎不是解决方案。
答案 0 :(得分:0)
上面的代码一切都很好,但是如果文本在文本框中,我没有意识到代码必须是不同的。
我努力打破文本框中的链接,并不断收到运行时错误438.但是,我找到了一个解决方法:
我在文档中写了一个子文章:
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