【发布时间】:2018-12-30 07:13:14
【问题描述】:
在将一系列单元格从 Excel 粘贴到 Word (2013) 后,该字段如下所示:
{ LINK Excel.Sheet.12 "D:\\RelativePath\\1\\work\\tmp.xlsx" Sheet1!NamedRange \a \p }
如果您将源 (.xlsx) 和接收器 (.docx) 移动到 2 文件夹,则需要更改 LINK 字段中的链接,使其看起来像这样:
{ LINK Excel.Sheet.12 "D:\\RelativePath\\2\\work\\tmp.xlsx" Sheet1!NamedRange \a \p }
这样的字段多时,不方便。
这两个我都试过了:
{ LINK Excel.Sheet.12 "...\\...\\work\\tmp.xlsx" Sheet1!NamedRange \a \p }
还有:
{ LINK Excel.Sheet.12 "~\\work\\tmp.xlsx" Sheet1!NamedRange \a \p }
但没有任何效果。
这也不行:
How to create absolute hyperlinks and relative hyperlinks in Word documents
是否可以在LINK字段中指定不是绝对的,而是相对的源地址?
更新 @Cindy Meister 提出了一个解决方案,经过一些改进后,代码运行良好。
他来了:
Sub updateLINKs()
Dim doc As Word.Document
Dim fld As Word.Field
Dim sFilePath As String, sFileName As String
Set doc = ActiveDocument
sFilePath = doc.Path
For Each fld In doc.Fields
If fld.Type = wdFieldLink Then
If fld.Result.InlineShapes.Count > 0 And _
InStr(fld.OLEFormat.ClassType, "Excel") And _
fld.LinkFormat.SourcePath <> sFilePath Then
sFileName = fld.LinkFormat.SourceName
fld.LinkFormat.SourceFullName = sFilePath & "\" & sFileName
End If
End If
Next
End Sub
【问题讨论】:
标签: excel ms-word word-field