上面的答案不适用于较新版本的 Office。下面的解决方案应该适用于新旧版本的office。我用 Office 2016 对其进行了测试。
多个细胞
首先我们得到当前电子表格的完整目录:
B1=CELL("filename")
我的示例的单元格内容是“C:[Book1.xlsx]Sheet1”。请注意,还包括文件名和工作表。要删除文件名和工作表,我使用了以下代码:
C1=LEFT(B1,FIND("|",SUBSTITUTE(B1,"\","|",LEN(B1)-LEN(SUBSTITUTE(B1,"\","")))))
结果是文件目录“C:\”。当然,这也适用于其他目录。在下一个单元格中,我输入了目标文件名:
D1Test.txt
我通过将目录和文件名组合成一个超链接来完成:
E1=HYPERLINK(C1&D1)
一个细胞
也可以将所有内容合并到一个单元格中:
B3=HYPERLINK(LEFT(CELL("filename"),FIND("|",SUBSTITUTE(CELL("filename"),"\","|",LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"\","")))))&"Test.txt")
设置
根据您的 Windows 设置(列表分隔符),您必须将所有“,”替换为“;” 在代码中。此外,您必须用您的目标文件替换“Test.txt”。目标文件必须与 Excel 文件位于同一目录中。
资源
https://social.msdn.microsoft.com/Forums/office/en-US/5d94e756-2202-4bbc-8795-cc6ba28e8a1b/excel-hyperlinkfile-format-for-a-relative-file?forum=exceldev