Gar*_*ent 5 excel vba excel-vba
我想在这个论坛帮助其他用户(参考).目标是使用Enter数字小键盘上的键来触发宏,而不是使用Worksheet_Change事件宏来实现相同的目的.
在运行任何操作之前,两个Enter键的工作方式相同.您输入内容,触摸任一键,材料放入单元格并向下Selection移动.如果您只需按下任一键,Selection只需向下移动即可.
在标准模块中,我把:
Sub NumericEnter()
Application.OnKey "{ENTER}", "InsertIntoTables"
End Sub
Run Code Online (Sandbox Code Playgroud)
和
Sub InsertIntoTables()
MsgBox "Inserting"
End Sub
Run Code Online (Sandbox Code Playgroud)
运行后NumericEnter(),Enter每次触摸时,数字键盘上的键都会调用正确的宏.普通Enter键不受影响.
然后我尝试Enter通过运行来恢复数字键:
Sub ClearEnter()
Application.OnKey "{ENTER}", ""
End Sub
Run Code Online (Sandbox Code Playgroud)
数字Enter键部分恢复其原始行为.它不再调用宏; 它允许数据进入单元格,但它根本不移动Selection! (常规输入键仍然正常运行)
我不知道我错过了什么.
我看过的内容:
SelectionSelectionApplication.MoveAfterReturn和Application.MoveAfterReturnDirection看起来也很好.仅使用
Application.OnKey "{ENTER}"
Run Code Online (Sandbox Code Playgroud)
没有第二个参数似乎清除宏映射并返回默认键操作(Excel 2013)
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-onkey-method-excel
expression.OnKey( Key , Procedure )
Run Code Online (Sandbox Code Playgroud)
该Procedure参数的描述是这样的:
一个字符串,指示要运行的过程的名称。如果 Procedure 是 ""(空文本),则按下 Key 时什么也不会发生。这种形式的 OnKey 改变了 Microsoft Excel 中击键的正常结果。如果省略 Procedure,则 Key 将恢复到 Microsoft Excel 中的正常结果,并且使用以前的 OnKey 方法进行的任何特殊键分配都将被清除。
| 归档时间: |
|
| 查看次数: |
516 次 |
| 最近记录: |