Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 链接到Excel中的可变单元格_Vba_Excel - Fatal编程技术网

Vba 链接到Excel中的可变单元格

Vba 链接到Excel中的可变单元格,vba,excel,Vba,Excel,我有一本工作簿,有两张纸。在Sheet1中,每行都有一个链接,链接到Sheet2。在Sheet2中,我需要生成一个链接,该链接将带我返回到我在链接上单击的同一行。单击链接后,该行的编号将存储在Sheet2的单元格A1中 例如,这个公式将生成一个链接,将我带回工作表1,单元格1。但是,我希望能够生成不同的行号,而不是始终生成第一行 Sheet2.Cells(19, 1) = "=HYPERLINK(""#Sheet1!A1"",""CLICK HERE"")" 谢谢。是的,您可以设置不同的范围,

我有一本工作簿,有两张纸。在Sheet1中,每行都有一个链接,链接到Sheet2。在Sheet2中,我需要生成一个链接,该链接将带我返回到我在链接上单击的同一行。单击链接后,该行的编号将存储在Sheet2的单元格A1中

例如,这个公式将生成一个链接,将我带回工作表1,单元格1。但是,我希望能够生成不同的行号,而不是始终生成第一行

Sheet2.Cells(19, 1) = "=HYPERLINK(""#Sheet1!A1"",""CLICK HERE"")"

谢谢。

是的,您可以设置不同的范围,创建范围字符串并将其添加到超链接公式中

Sub HyperlinkTest()

Dim cell As Range
Dim rangeString As String

Set cell = Sheet2.Cells(2, 3)

'rangeString = Sheet2!$C$2
 rangeString = cell.Worksheet.Name & "!" & cell.Address


Sheet2.Cells(19, 1) = "=HYPERLINK(""#" & rangeString & """,""CLICK HERE"")"

End Sub

或者,您可以在代码中向工作表添加超链接,而不是使用超链接功能

这里有一个例子

Sub HyperlinkTest2()

Dim targetCell As Range, sourceCell As Range
Dim targetRangeString As String

Dim displayText As String

displayText = "Click Me"

Set targetCell = Sheet1.Cells(2, 3) 'where we want the hyperlink to point to
Set sourceCell = Sheet2.Cells(30, 1) 'where we want to put the hyperlink

'target range address including sheet name
targetRangeString = targetCell.Worksheet.Name & "!" & targetCell.Address

'add the hyperlink
Sheet2.Hyperlinks.Add sourceCell, "", targetRangeString, , displayText

End Sub

如果您已经有代码将行号放入
Sheet2!A1
,您不需要VBA来完成此操作。只需定义一个命名范围,使命名范围引用
=INDIRECT(“Sheet1!a”&Sheet2!A1)
,并将该命名范围作为超链接目标。这是我的行号代码,但我无法得出您的解决方案,不确定如何做到这一点:私有子工作表_SelectionChange(ByVal Target As Range)Sheet2.Cells(1,1)=Target.Row'Sheet1.HyperlinkTest2 End Sub无论如何,另一个答案已经解决了,谢谢。