我是一个具有foo类的例程。类foo包含类栏,但不会初始化它。在我的例程中,我将父类方法的foo的类栏作为对象传入。接收方法然后将foo的酒吧初始化为新酒吧。通过方法初始化子类
由于某些原因,当我稍后引用foo时,bar未初始化。无论如何,在另一种方法中初始化foo的酒吧?
<Class Foo>
Option Explicit
Public mybar As Bar
<Class Bar>
Option Explicit
Public theText As String
<Main Module>
Public Sub Test()
Dim myfoo As New foo
Dim abar As Bar
Derp myfoo.mybar
myfoo.mybar.theText = "Test"
End Sub
Public Sub Derp(ByRef mybar As Bar)
Set mybar = New Bar
End Sub
当代码遇到myfoo.mybar.thetext =“Test”时,我收到错误91,对象变量或With块变量未设置。
我使用VBA通过供应商特定的系统,VBA版本6.5.1054。
我有意不在foo内初始化bar,因为在某些情况下,bar不存在,我测试它是否是无用的。 Foo实际上包含三个不同的小节,我希望能够推广一些可以在所有三个小节中调用的方法,方法是传递相应的小节。看起来这可能是不可能的。 – lfrandom
这是可能的...在编辑后查看我的答案。 –