我有一個Worksheet_BeforeDoubleClick
事件檢查,看看廣告點擊一個細胞是否具有在一個Dictionary對象,像這樣的數據:如何存儲可用於多次事件調用的對象?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target as Range, Cancel as Boolean)
Dim dict as Dictionary
Dim df as New dictFactory
'returns a dictionary populated with all list items
Set dict=df.create
If dict.Exists(Target.Value) Then
MsgBox "Exists"
Else
MsgBox "Doesn't exist"
End If
End Sub
的問題是,這需要創建一個新的字典中的每個被點擊的單元時間。我認爲這將是很好的存儲字典中的全局變量自己的模塊中,像這樣:
Global valuesDict As New Dictionary
,然後填充它在打開的工作簿:
Private Sub workbook_open()
Dim df as New dictFactory
Set valuesDict=df.create
End Sub
但我遇到在測試過程中有很多這種問題,因爲有很多的條件下,一個全局變量的值可以重置(如討論here)。
我怎麼能存儲的對象,以便其價值將可只要工作簿是開放的,在整個重複調用我的BeforeDoubleClick
事件?
使你的代碼穩定,這將是最好的保證,讓你'公共variable'值。順便說一句,爲什麼'全球'而不是'公共'? –
存儲它作爲一個全球性的,但檢查使用它,看它是否是'Nothing'之前:如果它不存在,然後使用'df.Create' –