将Excel f9 / shift f9 / ctrl f9键重新绑定到原始功能

时间:2016-04-01 09:33:36

标签: excel vba

我有一个电子表格,我使用onkey反映了workbook_open中的计算键:

 Private Sub Workbook_Open()
 Application.OnKey "{F9}", "HandleF9"
 Application.OnKey "^{F9}", "HandleCtrlF9"
 Application.OnKey "+{F9}", "HandleShiftF9"
 End Sub

这很好用。但是,显然它会反弹在该excel实例中打开的所有电子表格的计算键。一旦执行反弹的电子表格关闭,效果仍然存在。

我想通过在workbook_close中删除键绑定来解决此问题。这意味着一旦电子表格关闭,f9功能就会恢复正常。有谁知道如何实现这一目标?

2 个答案:

答案 0 :(得分:3)

省略第二个(可选)参数以返回正常功能msdn link

  

Procedure(可选)一个字符串,指示要运行的过程的名称。如果程序是"" (空文本),按下键时没有任何反应。这种形式的OnKey更改了Microsoft Excel中击键的正常结果。如果省略Procedure,则Key将恢复为Microsoft Excel中的正常结果,并清除使用以前的OnKey方法进行的任何特殊键分配。

   Application.OnKey "{F9}"
   Application.OnKey "^{F9}"
   Application.OnKey "+{F9}"

答案 1 :(得分:3)

只需省略过程参数

Application.OnKey "{F9}"