Excel VBA抓住了这个“机会”;计算表(移位和f9)";及;“计算工作簿”;事件

Excel VBA抓住了这个“机会”;计算表(移位和f9)";及;“计算工作簿”;事件,excel,vba,Excel,Vba,我不知道这是一件琐碎的事情,还是一件很麻烦的事情:是否有可能在VBA中捕获“计算工作表(shift+f9)”和“计算工作簿”事件 我想隐藏一些处理几千行的进程,只显示一些键值。我正在计算一个分布,数千行,只想输出百分位数和一些统计数据,以及图形,而不是所有这些行。当时我正在考虑一个经典的宏按钮,但我的用户更热衷于F9的生活方式 你认为我是在用我在标题中的建议指出一些有趣的东西吗?OnKey命令允许你禁用任何键或键组合,或使该键做一些不同的事情 打开包含宏的工作簿时,将自动执行该宏 Sub Aut

我不知道这是一件琐碎的事情,还是一件很麻烦的事情:是否有可能在VBA中捕获“计算工作表(shift+f9)”和“计算工作簿”事件

我想隐藏一些处理几千行的进程,只显示一些键值。我正在计算一个分布,数千行,只想输出百分位数和一些统计数据,以及图形,而不是所有这些行。当时我正在考虑一个经典的宏按钮,但我的用户更热衷于F9的生活方式


你认为我是在用我在标题中的建议指出一些有趣的东西吗?

OnKey命令允许你禁用任何键或键组合,或使该键做一些不同的事情

打开包含宏的工作簿时,将自动执行该宏

Sub Auto_Open()

  Application.OnKey "{F9}", "HandleF9"
  Application.OnKey "^{F9}", "HandleCtrlF9"
  Application.OnKey "+{F9}", "HandleShiftF9"

End Sub
将执行以下例程,而不是计算

Sub HandleF9()
  Debug.Print "F9 clicked"
End Sub
Sub HandleCtrlF9()
  Debug.Print "Ctrl+F9 clicked"
End Sub
Sub HandleShiftF9()
  Debug.Print "Shift+F9 clicked"
End Sub

有关更多信息,请参阅OnKey帮助。

我从未将代码放在模块以外的任何位置。我知道有些代码还有其他选择,但我无法帮助您进行这些选择。为了测试我的代码,我创建了一个工作簿,其中有两个工作表,每个工作表都有一些公式。我禁用了自动计算,以便在需要时使用F9和Shift+F9。我打开VB编辑器并插入一个模块。我在上面输入了代码。“自动打开”是一个关键字;打开工作簿时,Excel将自动执行具有此名称的宏(以允许使用宏为准)。您可能希望将此代码作为用户选择。Debug.Print输出到即时窗口。在VB编辑器中,单击Ctrl+G以显示/取消显示即时窗口。抱歉@jerome G您的评论已从我的屏幕中显示。如果我删除了它们,我深表歉意。我希望我的答案在没有问题的情况下有意义。