2015-04-02 49 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除外),则需要在运行任何代码的开始时调用初始化方法,以检查它们是否已分配,如果不是,则分配它们。