我是一個具有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
這是可能的...在編輯後查看我的答案。 –