2013-01-18 42 views

回答

0

檢查屬性最簡單的方法是強調它與光標在VBA編輯器並按下Shift + F2。這將在對象瀏覽器中顯示它的定義,並會在那裏告訴你它是否是隻讀的。

下面的截圖是workbook.worksheets.count財產。

enter image description here

,你可以在代碼檢查只讀中止錯誤試圖設置屬性,然後檢查的財產。即

iCountCheck = ThisWorkbook.Worksheets.Count 
On Error Resume Next 
ThisWorkbook.Worksheets.Count = 123 'Something that doesn't already equal iCountCheck 
On Error Goto 0 

If iCountCheck <> 123 
    MsgBox "This is not read only" 
Else 
    MsgBox "This is read only" 
End If 
+0

這是我需要的東西。我在MS Access工作,則存在被設計爲每個對象關閉時間重置特定屬性背景的宏。問題是,當一個對象被半打開並終止而沒有打開時,該屬性是不可寫的。我想如果我爲此進行檢查,我可以防止錯誤。但是,您的解決方案是在發生錯誤時捕捉錯誤。我會再讀一點。 – user139301

+0

,我不知道你是什麼意思「半開」,你的對象一些正在初始化,如果提前終止它根本不會重置初始值?你想檢查這是否發生?一個屬性是隻讀或不是它應該不會改變取決於代碼。你能提供更多的細節嗎? – CuberChase

+0

對不起,花了一段時間才找回來。我有一個使用帶有開放參數的過濾器的報告。因爲我廣泛使用過濾器,所以過濾器會被覆蓋。我想在每次關閉時將過濾器重置爲原始過濾器,因此我將其重置爲VBA。每次打開報告時,MS Access都會提示輸入參數。如果在提示符下點擊轉義,則會發生錯誤,指出過濾器屬性爲只讀。我甚至在那裏只是在有改變時才重寫過濾器,但這並不意味着什麼。 – user139301

相關問題