我知道可以使用
例如,当我使用箭头键移动活动单元格时,它仍然会运行代码。 我该如何只在实际点击单元格时运行代码?
Worksheet_SelectionChange
,但这并不完全符合我的要求。例如,当我使用箭头键移动活动单元格时,它仍然会运行代码。 我该如何只在实际点击单元格时运行代码?
Worksheet_SelectionChange
,但这并不完全符合我的要求。Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If (GetAsyncKeyState(vbKeyLButton)) Then 'left mouse button
'do something here
End If
End Sub
此外,您需要在普通模块(例如标准的“Module1”)的顶部插入以下部分:
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
If (GetAsyncKeyState(vbKeyLButton)) Then 'left mouse button
'blank
End If
正如我所说,还存在其他缺陷,因此这不会禁用Excel中所有不需要的行为。另一个问题是在Excel的其他位置单击(例如选择另一个功能区),然后通过箭头键更改单元格的选择。很遗憾,我没有找到对此的解决方案。do something here
?只是问一下。 - EngJonhttp://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_28343702.html(基本上是您提出的同样问题)
SelectionChange不能仅适用于鼠标:http://excel.tips.net/T003070_Mouse_Click_Event_in_VBA.html
经过大量搜索,网络上没有关于此的确切结论。这可能不是您要寻找的答案,但我认为您不会找到您想要的东西。