在另一个工作簿/ CSV VBA中创建到单元的超链接

时间:2016-08-31 22:21:08

标签: excel vba excel-vba hyperlink reference

我目前正在处理WorkbookA中的脚本,该脚本通知另一个工作簿(WorkbookB)中的更改。如果用户希望看到更改,我想添加被带到该工作簿的功能。目前,我正在运行代码:

SelRangeA(iRow, 2) = "=HYPERLINK(""[C:\..\WorkbookB.csv]Sheet1!B4"",""CLICK HERE"")"

在电子表格中显示正确的超链接:Click Here,内容为:

=HYPERLINK("[C:\..\WorkbookB.csv]Sheet1!B4","CLICK HERE")

但是,当我按照链接时,它会打开所请求的工作簿并显示错误:

  

参考无效。

有关如何正确引用所需单元格的任何见解?谢谢!

3 个答案:

答案 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]”,“点击这里”)

如果有多个工作表,请确保将名称范围设置为完整工作簿。