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

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

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

在电子表格中显示适当的超链接: Click Here以内容:

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

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

参考无效。

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

CSV文件将不包含“Sheet1”。 “表格”名称是从文件的名称派生的。

所以你的代码需要是:

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

其中filename已被设置为CSV文件的文件名的基本部分(即它需要等同于您的示例中的“WorkbookB”)。

一种方法是定义一个名称(公式 – >名称pipe理器),只要某些单元格被更改。 例如,如果名称被定义为“已更改的单元格”,则可以按如下方式设置超链接:

= HYPERLINK(“[C:.. \ WorkbookB.csv#changedcell]”,“CLICK HERE”)

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

如果链接在另一个工作簿中,并且您希望Excel打开该链接(如果该链接尚未打开),则需要指定地址和子地址(类似于HTML链接中的锚点):

 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"")" '^^^