2015-04-02 62 views
1

我想有可用到工作表的事件處理程序字典dict,所以我已經如下其存儲模塊GlobalVariables在:如何讓公共靜態變量不被賦值?

Public dict As Dictionary 

dict初始化在Workbook_Open事件:

Private Sub workbook_open() 

Set dict = New Dictionary 
dict.Add "abc", "def" 

End Sub 

這是Sheet1中的事件處理程序:

Private Sub worksheet_beforedoubleclick(ByVal target As Range, cancel As Boolean) 

If dict Is Nothing Then 
    Debug.Print "nothing" 
Else 
    Debug.Print "not nothing" 
End If 

End Sub 

Wh我首先打開工作簿,然後雙擊Sheet1中的單元格,dict不是Nothing。但是,如果我把一個斷點在這條線:

If dict Is Nothing Then 

,然後結束分了暫停在斷點處後,那麼下一次我雙擊並達到相同的斷點,dictNothing。看起來過早結束_beforedoubleclick子具有取消分配dict的效果。我怎樣才能防止這種情況發生?我想在調試時讓這個公共變量保持其值。

回答

0

你不能阻止它發生。如果在運行代碼時需要分配公共變量(consts除外),則需要在運行任何代碼的開始時調用初始化方法,以檢查它們是否已分配,如果不是,則分配它們。