Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 6216|回复: 5

[已解决]求方向键与ESC键的屏蔽代码

[复制链接]
发表于 2013-4-15 21:45 | 显示全部楼层 |阅读模式
5学分
问题如题。。。
最佳答案
2013-4-15 21:58
Application.OnKey 方法
当按特定键或特定的组合键时运行指定的过程。
语法

表达式.OnKey(Key, Procedure)

表达式   一个代表 Application 对象的变量。

参数

名称 必选/可选 数据类型 说明
Key 必选 String 表示要按的键的字符串。
Procedure 可选 Variant 表示要运行的过程名称的字符串。如果 Procedure 为空文本 (""),则按 Key 时不发生任何操作。该格式的 OnKey 将更改键击在 Microsoft Excel 中产生的正常结果。如果省略 Procedure 参数,则 Key 恢复为 Microsoft Excel 中的正常结果,同时清除先前使用 OnKey 方法所做的特殊键击设置。

说明


Key 参数可指定任何与 Alt、Ctrl 或 Shift 组合使用的键,还可以指定这些键的任何组合。每一个键可由一个或多个字符表示,比如 "a" 表示字符 a,"{ENTER}" 表示 Enter。

若要指定按对应的键(例如 Enter 或 Tab)时的非显示字符,请使用下表所列出的代码。表中的每个代码表示键盘上的一个对应键。

按键 代码
Backspace {BACKSPACE} 或 {BS}
Break {BREAK}
Caps Lock {CAPSLOCK}
Clear {CLEAR}
Delete 或 Del {DELETE} 或 {DEL}
向下键 {DOWN}
End {END}
Enter(数字小键盘) {ENTER}
Enter ~(波形符)
Esc {ESCAPE} 或 {ESC}
Help {HELP}
Home {HOME}
Ins {INSERT}
向左键 {LEFT}
Num Lock {NUMLOCK}
PageDown {PGDN}
PageUp {PGUP}
Return {RETURN}
向右键 {RIGHT}
Scroll Lock {SCROLLLOCK}
Tab {TAB}
向上键 {UP}
F1 到 F15 {F1} 到 {F15}



还可指定与 Shift 和/或 Ctrl 和/或 Alt 组合使用的键。若要指定与其他键组合使用的键,可使用下表。

要组合的键 在键代码之前添加
Shift +(加号)
Ctrl ^(插入符号)
Alt %(百分号)



若为特定字符指定处理过程(如 +、^、% 等等),可将此字符用圆括号括起。有关详细信息,请参阅示例。


示例


本示例为键序列 Ctrl+加号分配“InsertProc”过程,并为键序列 Shift+Ctrl+向右键分配“SpecialPrintProc”过程。

Visual Basic for Applications
Application.OnKey "^{+}", "InsertProc"
Application.OnKey "+^{RIGHT}", "SpecialPrintProc"

本示例将 Shift+Ctrl+向右键重新设为正常的含义。

Visual Basic for Applications
Application.OnKey "+^{RIGHT}"

本示例将 Shift+Ctrl+向右键键序列设为不发生任何操作。

Visual Basic for Applications
Application.OnKey "+^{RIGHT}", ""

发表于 2013-4-15 21:56 | 显示全部楼层
回复

使用道具 举报

发表于 2013-4-15 21:57 | 显示全部楼层
Application.EnableCancelKey 属性
控制 Microsoft Excel 如何处理 Ctrl+Break(或 Esc、Command+Period)用户中断以用于运行过程。XlEnableCancelKey 类型,可读写。
语法

表达式.EnableCancelKey

表达式   一个代表 Application 对象的变量。

说明


XlEnableCancelKey 可为以下 XlEnableCancelKey 常量之一。
xlDisabled 完全禁用“取消”键捕获功能。
xlErrorHandler 将中断作为错误信号传递给运行程序,由 On Error GoTo 语句设置的错误处理程序捕获。可捕获的错误代码为 18。
xlInterrupt 中断当前运行程序,用户可进行调试或结束程序的运行。

使用该属性应小心。如果使用 xlDisabled,则无法中断失控循环或者其他的不能自结束的代码;此外,如果使用 xlErrorHandler,但是错误处理程序始终使用 Resume 语句返回,同样无法终止失控代码。

只要 Microsoft Excel 返回空闲状态并且没有程序处于运行状态,EnableCancelKey 属性都会重置为 xlInterrupt。若要在程序运行中捕获或者禁用取消过程,则每次在程序被调用时必须明确更改 EnableCancelKey 属性。


示例


本示例显示可使用 EnableCancelKey 属性设置自定义取消处理程序的方法。

Visual Basic for Applications
On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
MsgBox "This may take a long time: press ESC to cancel"
For x = 1 To 1000000    ' Do something 1,000,000 times (long!)
    ' do something here
Next x

handleCancel:
If Err = 18 Then
    MsgBox "You cancelled"
End If
回复

使用道具 举报

发表于 2013-4-15 21:58 | 显示全部楼层    本楼为最佳答案   
Application.OnKey 方法
当按特定键或特定的组合键时运行指定的过程。
语法

表达式.OnKey(Key, Procedure)

表达式   一个代表 Application 对象的变量。

参数

名称 必选/可选 数据类型 说明
Key 必选 String 表示要按的键的字符串。
Procedure 可选 Variant 表示要运行的过程名称的字符串。如果 Procedure 为空文本 (""),则按 Key 时不发生任何操作。该格式的 OnKey 将更改键击在 Microsoft Excel 中产生的正常结果。如果省略 Procedure 参数,则 Key 恢复为 Microsoft Excel 中的正常结果,同时清除先前使用 OnKey 方法所做的特殊键击设置。

说明


Key 参数可指定任何与 Alt、Ctrl 或 Shift 组合使用的键,还可以指定这些键的任何组合。每一个键可由一个或多个字符表示,比如 "a" 表示字符 a,"{ENTER}" 表示 Enter。

若要指定按对应的键(例如 Enter 或 Tab)时的非显示字符,请使用下表所列出的代码。表中的每个代码表示键盘上的一个对应键。

按键 代码
Backspace {BACKSPACE} 或 {BS}
Break {BREAK}
Caps Lock {CAPSLOCK}
Clear {CLEAR}
Delete 或 Del {DELETE} 或 {DEL}
向下键 {DOWN}
End {END}
Enter(数字小键盘) {ENTER}
Enter ~(波形符)
Esc {ESCAPE} 或 {ESC}
Help {HELP}
Home {HOME}
Ins {INSERT}
向左键 {LEFT}
Num Lock {NUMLOCK}
PageDown {PGDN}
PageUp {PGUP}
Return {RETURN}
向右键 {RIGHT}
Scroll Lock {SCROLLLOCK}
Tab {TAB}
向上键 {UP}
F1 到 F15 {F1} 到 {F15}



还可指定与 Shift 和/或 Ctrl 和/或 Alt 组合使用的键。若要指定与其他键组合使用的键,可使用下表。

要组合的键 在键代码之前添加
Shift +(加号)
Ctrl ^(插入符号)
Alt %(百分号)



若为特定字符指定处理过程(如 +、^、% 等等),可将此字符用圆括号括起。有关详细信息,请参阅示例。


示例


本示例为键序列 Ctrl+加号分配“InsertProc”过程,并为键序列 Shift+Ctrl+向右键分配“SpecialPrintProc”过程。

Visual Basic for Applications
Application.OnKey "^{+}", "InsertProc"
Application.OnKey "+^{RIGHT}", "SpecialPrintProc"

本示例将 Shift+Ctrl+向右键重新设为正常的含义。

Visual Basic for Applications
Application.OnKey "+^{RIGHT}"

本示例将 Shift+Ctrl+向右键键序列设为不发生任何操作。

Visual Basic for Applications
Application.OnKey "+^{RIGHT}", ""

评分

参与人数 1 +1 收起 理由
huangcaiguang + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-4-15 21:59 | 显示全部楼层
hwc2ycy 发表于 2013-4-15 21:56
用ONKEY来实现吧。

就是不知道具体的代码,ctr+c好弄,这种字符型不知道?
回复

使用道具 举报

发表于 2013-4-15 22:21 | 显示全部楼层
huangcaiguang 发表于 2013-4-15 21:59
就是不知道具体的代码,ctr+c好弄,这种字符型不知道?

好不好用,你得试了才知道。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 22:48 , Processed in 1.678164 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表