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

我有一个电子表格,我已经使用onkey重新获得了workbook_open中的计算键值:

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

这工作正常。 但是,显然,它会重新启动在Excel实例中打开的所有电子表格的计算键。 即使反弹的电子表格closures,效果依然存在。

我想通过在workbook_close中取消keybininding来解决这个问题。 这意味着一旦电子表格closures,f9function将恢复正常。 有谁知道如何做到这一点?

省略第二个(可选)参数以返回到正常的functionmsdn链接 。

过程(可选)一个string,指示要运行的过程的名称。 如果过程是“”(空白文本),当按下键时什么都不会发生。 这种forms的OnKey更改Microsoft Excel中按键的正常结果。 如果Procedure省略,Key将恢复到Microsoft Excel中的正常结果,并清除使用以前的OnKey方法进行的任何特殊键分配。

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

只要省略程序参数

 Application.OnKey "{F9}"