6

我在 Excel 文件中有一个列,其中只有“ReleaseDoc”之类的值,但它们都是指向以下内容的超链接:

\\server1\folder1\subFolderA\subFolderB\SubFolderC\RealseaseDoc.doc

现在,我想做的是在另一列中有文件的路径,从超链接中提取,我已经用这个宏函数完成了

Function HLink(rng As Range) As String
If rng(1).Hyperlinks.Count Then HLink = rng.Hyperlinks(1).Address
End Function

在每个单元格中,我使用要从中提取地址的适当单元格调用此函数

问题是我得到的显示是这样的:

../../../SubFolderB/SubFolderC/RealeasesDoc.doc

我没有看到文档的完整路径,任何人都可以帮助使用这个 vba 功能吗?

PS:我已经搜索了帖子并没有找到类似的东西

谢谢

4

2 回答 2

7

Excel 会尽可能将地址更改为相对地址。为了防止这种情况,您需要设置 Hyperlink Base 属性。在 Excel 2010 中,单击文件 - 信息,必要时显示更多属性,然后输入 C: 的超链接库。

如果没有超链接库,则假定它是工作簿的路径。通过将其设置为 C:,您会强制 Excel 向您显示整个路径,因为它无法创建相对于 C: 的路径。如果您将 Hyperlink Base 设为 \server\folder1\,您将获得一个相对路径,因为 Excel可以创建一个相对于该路径的路径。

因此,如果您想保证地址中的完整路径,请将 Hyperlink Base 属性设置为与工作簿不同的共享或与工作簿不同的本地驱动器。

于 2013-07-05T15:45:15.540 回答
0

此处指出了一个解决方案:https: //support.microsoft.com/en-us/help/903163/how-to-create-absolute-hyperlinks-and-relative-hyperlinks-in-word-documents

该链接驱动到 MSWord 支持页面,但它也适用于 MSExcel(我使用 MSExcel2010 验证了它)。很快提出了两种解决方案:第一种适用于所有文档,而第二种适用于单个文档。

于 2017-02-02T11:21:55.973 回答