Win10下Excel2013(32位)访问含#号UNC路径超链接异常求解决方案
Excel UNC路径含#号超链接跳转失败解决方案
问题本质
Excel的超链接解析逻辑默认将#识别为内部书签分隔符,解析UNC路径时遇到#会自动截断后续内容,仅将#前的路径传递给资源管理器,因此只会打开到#前的folder1层级。
可行Workaround
方案1:URI编码替换#号(零配置,推荐)
将路径中的#替换为URI编码值%23即可绕开Excel的截断逻辑,系统打开路径时会自动将%23还原为#。
示例:
原路径:\\server\folder1\#___someCompany\someTopic
替换后路径:\\server\folder1\%23___someCompany\someTopic
可以直接将替换后的路径设置为单元格超链接,也可以用HYPERLINK函数书写:
=HYPERLINK("\\server\folder1\%23___someCompany\someTopic","点击跳转目标文件夹")
方案2:VBA自定义函数跳转(兼容所有特殊字符场景)
如果编码方式在你的环境下不生效,可以通过VBA直接调用系统资源管理器打开路径,完全绕开Excel的超链接解析逻辑:
- 按
Alt+F11打开VBA编辑器,右键当前工作簿选择「插入」-「模块」 - 粘贴如下代码:
Function OpenTargetPath(targetPath As String) Shell "explorer.exe """ & targetPath & """", vbNormalFocus End Function
- 回到Excel界面,在单元格中用HYPERLINK函数调用自定义函数即可:
=HYPERLINK("#OpenTargetPath(""\\server\folder1\#___someCompany\someTopic"")","点击跳转目标文件夹")
注意:使用该方案需要开启宏权限。
方案3:映射网络驱动器(无宏、无编码修改)
如果不想修改路径也不想启用宏,可以将#所在的上层路径映射为本地网络驱动器:
- 打开资源管理器,右键「此电脑」选择「映射网络驱动器」
- 选择一个闲置盘符,文件夹输入
\\server\folder1\#___someCompany,点击完成 - 后续直接用
{盘符}:\someTopic作为超链接路径即可,路径中不存在#字符,不会触发截断问题
缺点:所有需要使用超链接的设备都需要提前完成网络驱动器映射。
内容的提问来源于stack exchange,提问作者IronX
相关产品推荐
相关产品推荐

