VBA通过构造函数分配对象的引用

时间:2014-01-13 11:23:56

标签: vba access-vba

我在类模块中有以下VBA代码(Access 2010,Option Explicit):

public pObservers as Collection
private Sub Class_Initialize()
    Set pObservers = new Collection
End Sub

当我尝试构造类的新实例时,构造函数失败并出现编译错误:“Variable not defined”。

是的,我知道好的做法是pObservers应该是一个属性 - 我已经简化它以试图找出问题。那么应该如何我从构造函数初始化一个对象?

(我根本不知道VBA - 你可能会说。)

提前致谢。

1 个答案:

答案 0 :(得分:1)

我无法重新创建您的问题。在名为[myClass]的Access 2010 VBA类模块中,我有

Option Compare Database
Option Explicit

Private pObservers As Collection

Private Sub Class_Initialize()
    Set pObservers = New Collection
    pObservers.Add "Collection object initialized."
End Sub

Public Property Get Observers() As Collection
    Set Observers = pObservers
End Property

当我运行我的测试代码时

Option Compare Database
Option Explicit

Public Sub myClassTest()
    Dim mc As myClass, thing As Variant
    Set mc = New myClass
    For Each thing In mc.Observers
        Debug.Print thing
    Next
End Sub

我在立即窗口中看到以下内容

Collection object initialized.