我有一个 Word 文档,里面有图片链接。我想将它们嵌入到 Word 文档中,但我不想手动操作。
手动转到:文件 --> 编辑文件链接 --> 选择并点击“断开链接”就可以完成我想要的操作。
我找到了一些用于断开字段链接的 VBA 代码,但这无助于断开图片链接。这是我尝试的代码:
For Each objField In ActiveDocument.Fields
If Not objField.LinkFormat Is Nothing Then
objField.LinkFormat.Update
objField.LinkFormat.BreakLink
ActiveDocument.UndoClear
End If
Next
当我在文档中点击Alt+F9来显示字段时,图片没有任何变化,但其他字段(链接等)会展开/显示。因此,我假设这些图片链接不是“字段”。
我怎样才能在 VBA 中断开这些图片链接?
編輯譯註釋Word 文档基本上是一个 html 文件。这就是在 Word 中打开 .html 文件后得到的结果。
答案1
由于 Word 文档实际上是在 Word 中打开的 html 文档,因此它不包含用于标识字段的特定于 Word 的标记。因此,GUI 功能可以工作,但问题中详述的 vba 解决方案却不行。解决方案是首先使用新名称保存 Word 文档(从而生成 Word 标记),然后运行 breakLinks 宏。
用于保存文档的宏:
Sub saveAsDoc()
Dim newName As String
newName = ActiveDocument.Path & "\" & "fix_" & ActiveDocument.Name
ActiveDocument.SaveAs2 FileName:=newName, FileFormat:=wdFormatDocument
End Sub
断开链接的宏:
Sub breakLinks()
For Each objField In ActiveDocument.Fields
If Not objField.LinkFormat Is Nothing Then
objField.LinkFormat.Update
objField.LinkFormat.BreakLink
ActiveDocument.UndoClear
End If
Next
End Sub
应从外部脚本执行的主宏。displayAlerts 是为了确保没有弹出窗口。
Sub theTrick()
Application.DisplayAlerts = False
Call saveAsDoc
Call breakLinks
ActiveDocument.save
Application.DisplayAlerts = True
End Sub