我正在尝试帮助此论坛中的其他用户(reference)。目标是使用数字小键盘上的 Enter 键来触发宏而不是将Worksheet_Change事件宏用于相同目的。
在运行之前,两者都< kbd>输入键的工作方式相同。您输入内容,触摸任一键,材料放入单元格,Selection
向下移动。如果您只是抽出任一键,Selection
只会向下移动。
在标准模块中,我把:
Sub NumericEnter()
Application.OnKey "{ENTER}", "InsertIntoTables"
End Sub
和
Sub InsertIntoTables()
MsgBox "Inserting"
End Sub
运行NumericEnter()
后,数字键盘上的 Enter 键每次触摸时都会调用正确的宏。正常的 Enter 键不受影响。
然后我尝试通过运行来恢复数字 Enter 键:
Sub ClearEnter()
Application.OnKey "{ENTER}", ""
End Sub
数字 Enter 键部分恢复为原始行为。它不再调用宏;它允许数据进入单元格,但它根本不会移动Selection
! (常规输入键仍然正常运行)
我不知道我错过了什么。
我看过的内容:
Selection
Selection
Application.MoveAfterReturn
和Application.MoveAfterReturnDirection
的值也很好。答案 0 :(得分:4)
仅使用
Application.OnKey "{ENTER}"
没有第二个参数似乎清除宏映射并返回默认键操作(Excel 2013)
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-onkey-method-excel
expression.OnKey( Key , Procedure )
Procedure
参数的说明包含:
一个字符串,指示要运行的过程的名称。 如果程序 是&#34;&#34; (空文本),按下键时没有任何反应。这种形式 OnKey更改Microsoft Excel中击键的正常结果。 如果 省略过程,Key恢复到Microsoft的正常结果 Excel ,以及使用以前的OnKey进行的任何特殊键分配 方法被清除。