需要在工作表单元格中基于唯一ID运行宏

时间:2019-06-19 15:31:44

标签: excel vba

用户将使用用户表格在表格中输入新信息。该信息与输入时给出的唯一ID相关联(即,今年的第七项是2019-7)。当前,每条信息都放在一行中的单独单元格中。我想隐藏其中一些单元格,但能够允许用户单击该行开头的唯一ID,这将运行一个宏,该宏将创建一个新工作表以用户友好的方式显示所有信息。

我尝试创建超链接以运行宏,但是用于标识超链接的代码不是特定于单元格的。我需要一种更动态的方法来让excel识别单击了哪个ID,然后使用它来收集该行中的其余信息(即隐藏的列)。

我最好的选择是在工作表中放置一个私人子项,以识别何时更改/单击了单元格,但仅通过标识该单元格就无法通过。然后,我需要它来标识该单元格的内容,这将是唯一的ID。

创建超链接无问题,我只需要excel在单击超链接时运行宏,然后在该宏中标识唯一的ID和/或单击的行。一旦确定了ID或Row,就可以从那里获取其他列中的其余信息。

1 个答案:

答案 0 :(得分:0)

您可以使用工作表的BeforeDoubleClick事件:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address <> "$A$7" Then Exit Sub
' below, call the functions/subs that produce your output worksheet
MsgBox "You clicked on " & Target.Address
End Sub

仅在上方适用于单元格A7。如果您需要将其应用于整个A列,请稍作修改:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
' below, call the functions/subs that produce your output worksheet
MsgBox "You clicked on " & Target.Address
End Sub