因為使用者可能在『自動計算』或『手動計算』狀態下,所以要請教 Excel VBA 高手,如何在Excel 中,能偵測當時狀態,以便顯示讓使用者知道(非執行VBA時) 及在 VBA 執行中,能判斷當時狀態,以便視狀況需要,改變當時狀態。
將以下程式碼放在ThisWorkbook物件裡
<pre class="c" name="code">
Private Sub Workbook_Open()
Call Dream
End Sub
另外要新增一個模組
<pre class="c" name="code">
Sub Dream()
Select Case Application.Calculation
Case -4135
MsgBox "目前設定狀能為[手動]"
Case -4105
MsgBox "目前設定狀能為[自動]"
End Select
End Sub
前提是必須將EXCEL安全性設為中或低,這樣一開檔就可以知道目前的狀態,若要在其它程式碼使用它再呼叫它來判斷就可以了。
感謝dream大大的精闢的答覆,但想再請教:
1.若想在某一儲存格內,隨時顯示當時狀態為手動或自動(因為有些User 可能自己到工具-選項修改),則有辦法將偵測到訊息代號寫入儲存格嗎?
Tks a lot !
<pre class="c" name="code">
Sub Dream()
Select Case Application.Calculation
Case -4135
MsgBox "目前設定狀能為[手動]"
Case -4105
MsgBox "目前設定狀能為[自動]"
End Select
End Sub
1.若要寫入工作表可以把MsgBOX "XXXXXXXXX" 替換成 Sheets("Sheet1").Range("A1").Value = Application.Calculation
這樣會將得到的值寫入Sheet1的A1儲存格裡
2.請參考hondaithome大的解答