2016-12-07 179 views
0

我有一個工作表,該工作表根據選中哪個單元更新狀態條(工作正常)。我的問題是,與設置狀態欄回空的代碼,當用戶進入到另一個工作表:Excel VBA Application.StatusBar在Worksheet_Deactivate失敗,50290

Private Sub Worksheet_Deactivate() 
    Application.StatusBar = vbNullString ' Run time error here 
End Sub 

Err.Description是:「對象的方法'狀態欄'_Application失敗」,Err.Number的是:50290.

只有當用戶從Worksheet快速更改爲Worksheet(通過按Ctrl + PgUp或Ctrl + PgDown)並且在緩慢切換到另一個工作表的情況下不會發生此錯誤。

爲什麼我有這個錯誤?

回答

1

只要將它設置爲False

Application.StatusBar = False 

從微軟:如果微軟Excel有狀態欄的控制

此屬性返回false。要恢復默認狀態欄文本,請將該屬性設置爲False;即使狀態欄被隱藏,這也可以工作。

+0

謝謝,我試了一下,失敗與假,太。 – z32a7ul

+0

哦,如果這沒有幫助可能是與參考文獻的問題,我發現在其他地方: https://www.pcreview.co.uk/threads/application-screenupdating.3585123/ 檢查從編輯器工具 - >參考和你在那裏打勾 這是關於ScreenUpdating,但同樣的錯誤信息。 –

0

我發現了這個問題。當一個事件處理程序開始執行,Excel應用程序可能還沒有準備好,所以這個必須檢查如果代碼是指相關的應用程序對象:

Private Sub Worksheet_Activate() 
    If Application.Ready = False Then Exit Sub 
    ' Rest of the code referring to Application.x or Me.y or ActiveSheet.z, etc. 
End Sub