Excel:超链接到由另一个单元格的值指定的单元格

我有一个文档,需要通过从另一个单元格中获取地址来生成到同一工作簿中单元格的超链接。 这是我现在所拥有的:

=hyperlink(CELL("address",INDEX('Budget Record'!C3:C105,MATCH(Y73,'Budget Record'!C3:C105,0),1))) 

这显示适当的位置:

 '[Calendar Budget.xlsx]Budget Record'!$C$3 

但是,单击时,它表示Excel无法打开指定的文件。

我已经尝试手动创build超链接到该值,它仍然不会工作:

 =hyperlink('[Calendar Budget.xlsx]Budget Record'!$C$3) 

但是,如果我把它插入goto对话框,它没有问题。

我错过了一个额外的步骤?

查看了Excel提供的所有内置超链接选项之后,我无法find让Excel将您链接到dynamic/更改单元格引用的方法。 当然,我转向VBA:)…这是一个非常简单的macros,只有几行代码。 试试看:

  1. 按Alt + 11打开Visual Basic编辑器(VBE)
  2. 如果您的项目浏览器尚未打开,请单击此图标: 电脑 -  VBE项目资源管理器图标
  3. 双击您想要超链接工作的工作表选项卡: CRUTER  -  VBE项目资源管理器工作表名称
  4. 将以下代码粘贴到空白处:

     Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'check if user is selecting the 'hyperlink' cell If Target.Address = "$A$1" Then 'run the 'selectCell()' subroutine Call selectCell End If End Sub Sub selectCell() Dim goToAddress As String 'get cell address goToAddress = Range("A2").Value 'send user to this cell Range(goToAddress).Select End Sub 
  5. 转到您的工作表并通过在单元格B1键入G3来testing该脚本。

  6. select单元格A1 。 macros应该已经自动select了单元格G3

希望这可以帮助!

CRUTER  -  VBE图像作为参考

(代表OP发布)

我确定了一个解决scheme。 基本上看起来问题是在格式化。

基本上我需要三个步骤。 第一个是获取作为完整地址返回的单元格的位置(包括文件,工作表和单元格)。 我这样做:

 =CELL("address",INDEX('Budget Record'!C3:C105,MATCH(Y73,'Budget Record'!C3:C105,0),1)) 

下面是一个结果的例子:

 '[Calendar Budget.xlsx]Budget Record'!$C$3 

问题在于,起初的撇号是错误的。 要作为一个超链接,string应该是这样的:

 [Calendar Budget.xlsx]'Budget Record'!$C$3 

所以,我有一个步骤,删除起始string的前22个字符:

 =RIGHT(Z73,LEN(Z73)-23) 

这导致以下结果:

 Budget Record'!$C$3 

接下来,我需要添加到这个string的开始:

 [Calendar Budget.xlsx]' 

我做了以下几点:

 =HYPERLINK("[Calendar Budget.xlsx]'"&AA73) 

结果输出如下所示:

 [Calendar Budget.xlsx]'Budget Record'!$C$3 

所以,我们有一个超链接到另一个工作表中的单元格,这个单元格根据初始引用的单元格dynamic地改变。