Excel VBA:用超链接文本填充目标单元格内容的超链接

时间:2019-06-09 14:55:02

标签: excel vba excel-vba hyperlink

关于excel中的VBA和超链接,这里有很多类似的问题,但是我无法根据自己的情况进行修改。

在一张纸上,我有一列名称(E:E),在另一张纸上,我具有一个单元格(D13)。

我想做的是对(E:E)列中的每个单元格进行超链接,这样,单击后,超链接不仅将我带到单元格(D13),而且还用我单击的名称填充了单元格(D13)。 。

因此,单击“ John Smith”(Sheet1!E1)--->(Sheet2!D13)=“ John Smith”

2 个答案:

答案 0 :(得分:2)

首先,在标准模块中需要一小段代码,即可在Sheet1中安装超链接:

Sub MakeLink()
    Sheets("Sheet1").Hyperlinks.Add Anchor:=Range("E1"), Address:="", SubAddress:="Sheet2!D13", TextToDisplay:="Stuff"
End Sub

然后,您需要在工作表代码区域中使用事件宏来进行内容传输:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    ActiveCell.Value = Sheets("Sheet1").Range(Target.Parent.Address).Value
End Sub

答案 1 :(得分:1)

我认为最好的解决方案可能是使用VBA。如果不确定如何执行此操作,请记录s宏,该宏在e中选择一个单元格,然后转到D13并更新其值,然后查看记录的代码并使用这些代码片段创建代码。在较高的层次上,您希望单击E列中任何执行以下操作的单元格来触发宏:

Dim e_value = <value of selected cell in column E> ThisWorkbook.Sheets("name of sheet 2").Range("D13") = e.value Application.Goto Reference:=Worksheets("Sheet2").Range("D13"), Scroll:=False

请注意,上面包含了伪代码,但是它应该使您大致了解如何进行。