我在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:我已经搜索了帖子,发现没有这样的内容
谢谢
答案 0 :(得分:7)
Excel会尽可能将地址更改为相对地址。要防止这种情况,您需要设置Hyperlink Base属性。在Excel 2010中,单击文件 - 信息,根据需要显示更多属性,然后输入C:。
的超链接基础如果没有超链接基础,则假定它是工作簿的路径。通过将其设置为C:,您强制Excel显示整个路径,因为它无法创建相对于C:的路径。如果您创建Hyperlink Base \ server \ folder1 \,您将获得相对路径,因为Excel 可以创建相对于该路径的路径。
因此,如果要保证Address中的完整路径,请将Hyperlink Base属性设置为与工作簿不同的共享或与工作簿不同的本地驱动器。
答案 1 :(得分:0)
链接驱动到MSWord支持页面,但它也适用于MSExcel(我使用MSExcel2010验证它)。提出了两个解决方案:第一个适用于所有文档,第二个适用于单个文档。