我们在VBA设计中经常需要使用到OnKey方法,特别是在窗口设计中比如我们想用到翻页按键,则就可以来建立一个OnKey事件。Setup_OnKey过程运行以后,就会达到最终效果,按PgDn键会将指针下移一行,按PgUp键会将指针上移一行。使用PgUp和PgDn的按键组合不受影响。所以,诸如Curl+PgDn的组合键仍会激活工作簿中的下一个工作表。该事件重新指定了PgDn和PgUp键。执行
Sub Setup_OnKey ()
Application. OnKey" (PgDn) ", "PgDn_Sub"
Application. OnKey " (PgUp) ", "PgUp_Sub"
End Sub
Sub PgDn_Sub ()
On Error Resume Next
ActiveCell. Offset (1, 0) . Activate
End Sub
Sub PgUp_Sub ()On Error Resume Next
ActiveCell. Offset (-1, 0).Activate
End Sub
在上面的示例中,使用On Error Resume Next语句来忽略生成的所有错误。例如,如果活动单元格位于第一行,那么上移一行会引起错误。同样,如果活动工作表是一个图表工作表,那么也会发生错误,因为在图表工作表中没有活动单元格。当然程序结束前我们还要编写一个过程,将OnKey事件取消,将这些按键恢复到正常的功能。
OnKey事件的按键代码表格如下:
按键 |
代码 |
BacAspaceBacAspace |
(BACKSPACE)或(BS) |
BroakBroak |
(BREAK) |
Caps LockCaps Lock |
(CAPSLOCK) |
Delete or DelDelete or Del |
(DELETE)或(DEL) |
向下請头 |
(DOWN) |
End |
(END) |
Emter |
~(领化符号) |
Enter(数字健区中) |
(ENTER) |
Escape |
(ESCAPE)或(ESC) |
Home |
(HOME) |
Ins |
(INSERT) |
向左薪头 |
(LEFT) |
NumLock |
(NUMLOCK) |
Page Down |
(PGDN) |
Page Up |
(PGUP) |
向右箭头 |
(RIGHT) |
Scroll Lock |
(SCROLLLOCK) |
Tab |
(TAB) |
向上箭头 |
(UP) |
F1至F15 |
(F1)至(F15) |
有时候我们为了避免习惯性按键带来误操作,我们还可指定Shift、Ctrl和Alt等组合键。要指定将某个键与其他键组合使用,则使用下列符号:
Shift:加号(+)Ctrl:脱字符号(^)Alt:百分号(%)
例如,要给Ctrl+Shift+A组合键指派一个过程,则使用下列代码:
Application. OnKey "^+A", "SubName"
要给Alt+F11组合键指派一个过程(通常用来切换到VBE窗口),则使用下列代码:
Application. OnKey "^ (F11) ", "SubName"