我有一个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
但是我在测试过程中遇到了很多问题,因为有很多条件可以重置全局变量的值(如这里所讨论的)。
如何存储一个对象,以便只要工作簿处于打开状态,在重复调用我的BeforeDoubleClick
事件的过程中,它的值就可用?