我遇到全局变量超出范围的问题。我在 “的ThisWorkbook” 中定义的公共变量:VBA - 全局变量超出范围
Public dict As Scripting.Dictionary
它被作为 “Workbook_Open()” initalized
Set dict = New Scripting.Dictionary
初始化后,我运行一个子(位于 “的ThisWorkbook” 仍然代码)用自定义类的ID和实例填充此字典。
虽然在其他模块中使用此dict变量时遇到问题。目标是构建工作表可以调用的大量公共函数。这些函数在字典中的自定义类中操作/检索/ etc数据。
例如,这个测试子(在ModuleXYZ代码)抛出“对象变量或带块变量未设置”
Private Sub TestSub()
Dim x As Integer
x = ThisWorkbook.dict.Count
End Sub
这是同样的错误,当我第一次开始这个编码项目,我会得到,当该字典在“ThisWorkbook”模块中超出了范围,我必须重做“Set dict = New Scripting.Dictionary”
我希望通过在“ThisWorkbook”中将dict设置为公共变量, ,这个工作簿在整个开放时间内都会保持在范围内。
谢谢 - KC
应该保持,只要你做事不重置项目(同样是所有的真公共变量)。 – Rory