发布密钥时触发事件VBA
我有这个代码来检测何时按下Enter键
Private Declare Function GetKeyState Lib "user32" _ (ByVal nVirtKey As Long) As Integer Const VK_RETURN As Integer = &HD
我在这个macros中使用这个函数
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If GetKeyState(VK_RETURN) < 0 Then Enter = True Else Enter = False If Enter = True Then Call IncreaseValue End If End Sub
然而,当按住Enter键时,这被称为多次。 每次按下回车键时,是否只能调用一次该函数?
额外的信息,以防万一:为什么我需要它是因为我有一个数据条目,作为一种forms – 每次按下input键,它增加一个单元格值1,用于查找值。 但按住enter键将跳过logging。
当然有! 所有你需要的是跟踪Enter
键切换 (注意返回值)。
后面的主要思想是跟踪低位( 切换/解除切换 ),每当它改变,高位为1( 按下 )时,我们可以自由地增加我们想要的。
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static StatePreservedResponse As Long Dim StateResponse As Long StateResponse = GetKeyState(VK_RETURN) If StateResponse < 0 And StateResponse <> StatePreservedResponse Then Call IncreaseValue End If StatePreservedResponse = StateResponse End Sub
- 使用VBA或Python(?)login网站,提取一个文件,然后用excel中的macros自动格式化它
- Excel:具有重复函数的不同单元格
- DAX测量来迭代每一行以进行正确的划分(总计也是如此)
- 对文件夹中的所有子文件夹执行相同的操作
- 删除个人工作簿中的VBA代码(Excel for Mac) – 无法取消隐藏
- 在Windows 10中获取Excel对象的所有属性列表
- 通过vba将我的文档上传到sharepoint
- 如何在使用Python添加数据时保留Excel中的macrosbutton
- 为什么Microsoft.Office.Interop.Excel.Application.Quit()会使后台进程运行?