2011-11-30 101 views
3

我不知道這是微不足道的還是實際上很難做:是否有可能捕捉到「計算表(shift + f9) 「和」計算工作簿「事件在VBA中?VBA捕獲「計算表(shift + f9)」和「計算工作簿」事件

我想隱藏一些操作幾千行的進程,只顯示一些關鍵值。我正在計算分佈,數千行,並且只想輸出百分位數和一些統計數據,以及圖表而不是所有這些行。目前我正在考慮一個經典的宏按鈕,但我的用戶更喜歡F9的生活方式。

您是否認爲我正指向我在標題中提出的建議?

回答

5

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幫助以獲取更多信息。

+0

我從來沒有把我的代碼放在模塊以外的任何地方。我知道有些代碼還有其他選擇,但我無法幫助您選擇這些選項。爲了測試我的代碼,我創建了一個帶有兩個工作表的工作簿,每個工作表都有一些公式我禁用了自動計算功能,所以我可以在需要時使用F9和Shift + F9。我打開VB編輯器並插入一個模塊。我輸入了上面的代碼。 「Auto_Open」是一個關鍵字;打開工作簿時,Excel將自動執行帶有該名稱的宏(受宏允許)。您可能希望將此代碼作爲用戶選擇。 –

+0

Debug.Print輸出到立即窗口。在VB編輯器中,單擊Ctrl + G顯示/不顯示直接窗口。 –

+0

對不起@ jerome G您的評論已從我的屏幕上消失。如果我刪除它們,我很抱歉。我希望我的答案在沒有問題的情況下有意義。 –