excel 全球收藏

knpiaxh1  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(120)

我有一个集合,我已经在模块的顶部声明为
Public myCol as new Collection
我使用Sub来填充集合,但是这并没有写入全局集合,并且在退出Sub时,内容就消失了。
我假设这些项目,因为在子程序中创建,所以只有本地作用域。
如何使用例程或函数全局填充集合?
如果可能的话,我希望不必传递对象,因为我在单个子例程中填充了多个全局集合。

yzuktlbb

yzuktlbb1#

创建一个标准模块来保存你的公共对象,并通过属性公开它们。然后属性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"

相关问题