Excel超链接来运行基于行的用户表单

我有一个工作簿,所有的数据通过用户表单进行pipe理,无需手动input。 我想通过将其中的一个colums命名为“Edit”,将其作为公式来编辑一行:

=HYPERLINK("Edit:>8";"Click to Edit"

“8”是创build行时自动添加的行ID号

我以为这会工作,但不知道超链接地址需要是有效的这个事件触发:

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) If Left(Target.Address, 8) = "Edit:>" Then editRow(Right(Target.Adress,9)) End If End Sub 

任何解决方法或更好的想法?

你需要通过Ctrl-K快捷方式插入超链接,它的工作原理:

添加新的超链接

和这个代码

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim rowNum As Long rowNum = CLng(Replace(Replace(Target.Address, "https://row", ""), ".com/", "")) MsgBox "You are about to edit row " & rowNum End Sub 

回报

消息框结果

但它会变得更好 – 甚至不需要从URL中parsing行号,因为Hyperlink对象提供了Range方法,您可以使用它来确定单击它的行:

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) MsgBox "You are about to edit " & Target.Range.Address End Sub 

在这里输入图像说明

HyperLinkfunction不能这样工作 – 它不会触发FollowHyperlink事件。

看到:

Worksheet_FollowHyperlink和MsgBox在Excel 2010中不起作用

FollowHyperlink事件不起作用

你可以尝试一个插入的超链接(可能不是很有用)或搭载另一个事件,如SelectionChange,尽pipe这可能会减慢你的速度,因为代码基本上每次你点击运行。

在一个单元格中:

 =HYPERLINK("#Tester()", "Click to Edit") 

在一个模块中:

 Function Tester() Debug.Print Selection.Row '<< do something with the row Set Tester = Selection End Function 

这种方法的信用归功于lori_m: 从HYPERLINK()运行VBA