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

时间:2016-08-31 12:52:09

标签: 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无法打开指定的文件。

我尝试手动创建指向该值的超链接,但它似乎仍无效:

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

但是,如果我将其插入到goto对话框中,它就没有任何问题。

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

2 个答案:

答案 0 :(得分:0)

After looking into all of the built-in hyperlink options that Excel offers, I could not find a way to have Excel link you to a dynamic/ changing cell reference. Naturally, I turned to VBA :)... this is a very simple macro with only a few lines of code. Give it try:

  1. Press Alt + 11 to open the Visual Basic Editor (VBE)
  2. If your project explorer is not already open, click this icon: CRUTER - VBE Project Explorer icon
  3. Double click the worksheet tab that you want the hyperlink to work on: CRUTER - VBE project explorer sheet name
  4. Paste the following code into the white space:

    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. Go to your worksheet and test the script by typing G3 in cell B1.

  6. Select cell A1. The macro should have automatically selected cell G3.

Hope this helps!

CRUTER - VBE image as a reference

答案 1 :(得分:0)

(代表OP发布)

我找到了一个解决方案。基本上看起来问题出在格式化中。

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

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

以下是导致结果的示例:

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

问题在于开头的撇号位于错误的位置。要作为超链接工作,字符串应为:

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

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

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

这导致以下结果:

Budget Record'!$C$3

接下来,我需要将其添加到字符串的开头:

[Calendar Budget.xlsx]'

我是这样做的:

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

结果输出如下:

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

因此,我们有一个指向另一个工作表中单元格的超链接,该单元格根据初始引用的单元格动态更改。