我目前正在处理WorkbookA中的脚本,该脚本通知另一个工作簿(WorkbookB)中的更改。如果用户希望看到更改,我想添加被带到该工作簿的功能。目前,我正在运行代码:
SelRangeA(iRow, 2) = "=HYPERLINK(""[C:\..\WorkbookB.csv]Sheet1!B4"",""CLICK HERE"")"
在电子表格中显示正确的超链接:Click Here
,内容为:
=HYPERLINK("[C:\..\WorkbookB.csv]Sheet1!B4","CLICK HERE")
但是,当我按照链接时,它会打开所请求的工作簿并显示错误:
参考无效。
有关如何正确引用所需单元格的任何见解?谢谢!
答案 0 :(得分:2)
CSV文件不会包含" Sheet1"。 "表" name源自文件名。
所以你的代码必须是:
=HYPERLINK("[C:\..\WorkbookB.csv]'" & filename & "'!B4","CLICK HERE")
其中filename
已设置为CSV文件文件名的基本部分(即,它需要等同于" WorkbookB"在您的示例中)。
答案 1 :(得分:1)
如果链接在另一个工作簿中并且您希望Excel打开它(如果它尚未打开),则需要同时指定地址和子地址(类似于HTML链接中的锚点):< / p>
SelRangeA(iRow, 2) = "=HYPERLINK(""C:\Foo.xlsx#[C:\Foo.xlsx]Sheet1!A1"")"
编辑:请注意,对于.csv
文件,工作表名称将默认为打开时的文件名:
SelRangeA(iRow, 2) = "=HYPERLINK(""C:\Foo.csv#[C:\Foo.csv]Foo!A1"")"
'^^^
答案 2 :(得分:1)
执行此操作的一种方法是在某些单元格发生更改时定义名称(公式 - >名称管理器)。例如,如果名称被定义为“changedcell”,您可以按如下方式设置超链接:
= HYPERLINK(“[C:.. \ WorkbookB.csv#changedcell]”,“点击这里”)
如果有多个工作表,请确保将名称范围设置为完整工作簿。