如何从excel超链接中提取完整路径

时间:2015-12-15 03:56:55

标签: excel vba excel-vba hyperlink

我有一个工作表,我在其中维护了一个包含指向其他工作表的超链接的列。

Set rngx = Worksheets("Sheet2").Range("C1:C10000").Find("Power Plant 1", lookat:=xlPart)

BR2 = rngx.Hyperlinks(1).Address

此处在BR2之前,我曾经将特定的超链接路径视为 "项目\发电厂\发电厂EPC 1.xlsm"

后来我进入了info->属性并将超链接基础更改为C:\, 现在提到超链接基础后,我得到超链接路径为"用户\ inkapb \ AppData \ Local \ Temp \ EPC AutoTool \ Projects \ Power Plant \ Power Plant EPC 1.xlsm"

我的问题是我需要C:驱动器的路径,如:" C:\ Users \ inkapb \ AppData \ Local \ Temp \ EPC AutoTool \ Projects \ Power Plant \ Power Plant EPC 1.xlsm"是否可以在代码中附加C:\来实现这一点。

2 个答案:

答案 0 :(得分:0)

我得到了完整的路径。 而不是基于“C:\”的超链接基础我改为“x”,它就像一个魅力。

答案 1 :(得分:0)

使用%LOCALAPPDATA%环境变量设置超链接地址。

'as a formula
=HYPERLINK("%LOCALAPPDATA%\Temp\EPC AutoTool\Projects\Power Plant\Power Plant EPC 1.xlsm", "Power Plant 1")

'as VBA
rngx.Hyperlinks(1).Address = Environ("LOCALAPPDATA") & _
  "\Temp\EPC AutoTool\Projects\Power Plant\Power Plant EPC 1.xlsm"
'or,
rngx.Hyperlinks(1).Address = "%LOCALAPPDATA%\Temp\EPC AutoTool\Projects\Power Plant\Power Plant EPC 1.xlsm"

Hyperlinks objectHYPERLINK function检索.Address应检索正确的完整路径和文件名。

BR2 = rngx.Hyperlinks(1).Address