2015-12-15 165 views
1

我有一个工作表,其中我维护了一个包含超链接到其他工作表的列。如何从Excel超级链接提取完整路径

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

BR2 = rngx.Hyperlinks(1).Address 

在这里,BR2以前我曾经获得特殊的链接路径 “项目\电厂\电厂EPC 1.xlsm”

后,我走进信息 - >特性,改变了超链接基地到C:\, 现在提的超链接基础后我得到的超级链接路径为“用户\ inkapb \应用程序数据\本地的\ Temp \ EPC AutoTool \项目\电厂\电厂EPC 1.xlsm”

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

+0

用户** inkapb **是否更改?如果另一个用户正在使用该工作簿,该链接是否仍然引用--inkapb--用户的配置文件文件夹? – Jeeped

+0

inkapb如果有其他用户正在使用工作簿,用户将会改变,那么他们的用户名将会如您所说的被替换。 –

回答

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检索。地址应检索正确的完整路径和文件名。

BR2 = rngx.Hyperlinks(1).Address 
0

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