我有一个工作簿,所有数据都是通过userforms管理的,没有手动输入。我希望通过将其中一个名为“Edit”的列作为其公式来更容易地编辑行:
=HYPERLINK("Edit:>8";"Click to Edit"
)
“8”是创建行时自动添加的行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
任何变通方法或更好的想法?
答案 0 :(得分:2)
您需要通过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
返回
但它会变得更好 - 您甚至不需要解析网址中的行号,因为Hyperlink
对象提供了Range
方法,您可以使用确定点击它的行:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
MsgBox "You are about to edit " & Target.Range.Address
End Sub
答案 1 :(得分:0)
HyperLink功能不起作用 - 它不打算触发FollowHyperlink事件。
请参阅:
Worksheet_FollowHyperlink and MsgBox not working in Excel 2010
FollowHyperlink event not working
您可以尝试插入的超链接(可能不是很有用)或搭载其他事件,例如SelectionChange,尽管这可能会减慢您的速度,因为代码基本上每次点击都会运行。
答案 2 :(得分:0)
在一个单元格中:
=HYPERLINK("#Tester()", "Click to Edit")
在一个模块中:
Function Tester()
Debug.Print Selection.Row '<< do something with the row
Set Tester = Selection
End Function
这种方法归功于lori_m:Running VBA from a HYPERLINK()