我有一个文档需要通过从另一个单元格获取地址来生成指向同一工作簿中的单元格的超链接。这就是我现在所拥有的:
=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对话框中,它就没有任何问题。
我错过了一个额外的步骤吗?
答案 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:
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
Go to your worksheet and test the script by typing G3
in cell B1
.
A1
. The macro should have automatically selected cell G3
.Hope this helps!
答案 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
因此,我们有一个指向另一个工作表中单元格的超链接,该单元格根据初始引用的单元格动态更改。