我正在创建一个用VB.NET编写的Excel外接程序。我希望将KeyDown和KeyUp事件绑定到电子表格,以便记录用户在浏览电子表格时按下和释放箭头键的时间。
例如,理想情况下,这些事件应该与原生SheetActivate和SheetSelectionChange事件一起构建到Excel中。可惜,事实并非如此。
请注意,我对Windows窗体控件的KeyDown/KeyUp事件不感兴趣,因为我没有使用Windows窗体。相反,我希望在Excel应用程序、工作簿或工作表级别创建这些事件。
发布于 2012-04-02 15:05:09
可以将Windows API调用GetAsyncKeyState与SelectionChange事件结合使用
下面是一个演示VBA的小代码片段
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Key As Long
For Key = 3 To 255
If GetAsyncKeyState(Key) Then
MsgBox "KeyCode: " & Key & " was pressed."
End If
Next
End Subhttps://stackoverflow.com/questions/9967547
复制相似问题