因此,我非常熟悉为双击之类的工作表事件引用工作表范围。不过,在这种情况下,我希望在双击行标题而不是单元格时进行引用。它仍然是特定于工作表的,但到目前为止我还没有成功。
我有多个范围在双击时执行不同的事件,因此我使用类似于以下示例的代码:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rWatchRange As Range
Dim sWatchRange As Range
Set rWatchRange = Range("A5:A1000")
'I somehow need it to recognize if the row header is
'double clicked between row 5 and 1000 to fire off the second sub
Set sWatchRange = Range("5:1000")
If Not Application.Intersect(Target, rWatchRange) Is Nothing Then
Run "aFormattingSub"
End If
If Not Application.Intersect(Target, sWatchRange) Is Nothing Then
Run "aSubToInsertNewLineAndGroupWithRowAbove"
End If
End Sub
我不确定是否知道工作表引用,应用程序引用或Excel中的设置可以做到这一点。
最佳答案
双击标题时,不会触发DoubleClick事件。我认为这没有任何微不足道的方法-您必须接受所提供的事件。
我认为仍有足够的空间来实现更多功能。
为了给您更多的想法,您可以在按住ctrl的情况下双击或右键单击来执行不同的操作。
仅在选择了整行的情况下,对按住Ctrl键的右键单击使用react的示例:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If (GetKeyState(KeyCodeConstants.vbKeyControl) And &H8000) And _
Selection.Address = Selection.EntireRow.Address Then
Cancel = True
' ... code
End If
End Sub
(
And &H8000
是仅对当前存在的作出 react 并忽略先前的按键所必需的)将API函数导入模块中:
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
关于excel - 控制行标题的双击事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25677897/