全局集合



我在一个模块的顶部声明了一个集合

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"

最新更新