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