2013-01-18 27 views
1

我有一個電子表格設置爲手動計算以節省時間(計算需要很長時間)。通過vba檢測計算類型

我想提供一些建議用戶是否需要執行計算以獲取整個工作簿的最新方法。我還沒有完全想到它,但在我的腦海中,我需要能夠區分用戶執行的計算。

I.e.我需要一個worksheet_calculate事件來識別用戶是否已經完成shift-f9或者ctrl-shift-f9並且能夠根據它改變它的行爲。

任何幫助將感激地收到。

+0

如果什麼用戶chnages從菜單中計算? –

回答

4

您可以嘗試使用onkey

Sub TrackKeys() 
    Application.OnKey "+{F9}", "Recalculate" 
End Sub 

'in your sub you can call the calculations mode to be changed. 
Sub Recalculate() 
    Sheet1(1).Range("A2:E5").Calculate 
End Sub 

找到的鏈接:試試這個美好的解釋:)

http://support.microsoft.com/kb/919127

+0

謝謝 - 沒有想過這樣嘗試。這可能會產生一些...... – chrisSpaceman

+0

是的 - 這將工作得很好。我還注意到shift-f9首先擊中了Worksheet_Calculate事件,然後是Workbook_SheetCalculate事件,而ctrl-xhift-alt-f9則擊倒了它。我想你可以做些什麼,但如果更乾淨,你的方法。 – chrisSpaceman

+0

+ 1爲正確的問題;) –