我有一个工作表,其中数据表的每一行都有一个基于公式的超链接。我希望这些超链接在每次单击其中一个时执行宏。宏需要一个参数来根据单击哪个行的超链接采取不同的行为,因此我使用的是活动单元格的行号。
我尝试过各种各样的方法,但没有一种方法可以完成功能。在大多数情况下,我需要在事件宏本身中指定单元格地址,这不是可伸缩选项。
示例数据:
Col A Col B
A Link: A
B Link: B
C Link: C
D Link: D
E Link: E
上表中的第二列应该是超链接列表。
我在第二列中使用的超链接公式(例如在单元格B1中):
=HYPERLINK(MID(CELL("filename"),FIND("[",CELL("filename")),FIND("]",CELL("filename"))-FIND("[",CELL("filename"))+1)&ADDRESS(ROW(),COLUMN()-1),"Link: "&$A1)
我在工作表代码中使用的宏:
Private Sub Workbook_SheetFollowHyperlink(ByVal Target As Hyperlink)
Dim sData As String
sData = "text: " & sData & Range(Target.Range.Address). _
Offset(0, -1).Value & vbCr
MsgBox sData
End Sub
对于我这种情况,当我点击超链接
时,上面的宏甚至都没有运行答案 0 :(得分:0)
在Excel 2013中,Workbook_SheetFollowHyperlink
的方法“签名”为您的事件处理程序提供了另一个参数。您可以在代码中加入ByVal Sh As Object
,然后重试:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
'your code goes here
End Sub