我在一个模块的顶部声明了一个集合
Public myCol as new Collection
我使用Sub
来填充集合,但是这不会写入全局集合,并且在退出Sub
时内容就消失了。
我假设项目,因为在子中创建,只有局部作用域。
如何使用例程或函数来全局填充集合?
如果可能的话,我希望不必传递对象,因为我在单个子例程中填充了多个全局集合。
创建一个标准模块来保存公共对象并通过属性公开它们。属性getter可以在返回对象之前检查对象是否已经初始化。
参见示例:
Private m_collection As VBA.Collection
Public Property Get GlobalCollection() As VBA.Collection
If m_collection Is Nothing Then Set m_collection = New VBA.Collection
Set GlobalCollection = m_collection
End Property
调用它:
YourModuleName.GlobalCollection.Add "Something"
或
GlobalCollection.Add "Something"