我有有一個自定義COM類的成員類模塊MyVBAclassVBA獲取財產
Private mMyCOMclass As MyCOMclass
Public Property Get InnerClass() As MyCOMclass
Set InnerClass = mMyCOMclass
End Property
Public Property Let InnerClass(value As MyCOMclass)
Set mMyCOMclass = value
End Property
Private Sub Class_Initialize()
Set mMyCOMclass = New MyCOMclass
End Sub
MyCOMclass具有的clone()和CopyTo從()來實現,克隆返回MyCOMclass的一個新的實例方法,並CopyTo從只是將屬性複製到已經初始化的對象。 這是我的問題,如果有人能解釋如何避免這個問題,那將會很棒。
Dim MyVBAinstance As MyVBAclass
Set MyVBAinstance = New MyVBAclass
Dim COMinstance As MyCOMclass, copyOfCOM As MyCOMclass
Set COMinstance = New MyCOMclass
Set copyOfCOM = New MyCOMclass
' Do some stuff with COMinstance
Call COMinstance.CopyTo(copyOfCOM) ' Works fine
MyVBAinstance.InnerClass = COMinstance.Clone() ' Works fine even without Set
Call COMinstance.CopyTo(MyVBAinstance.InnerClass) ' DOESN'T WORK
MyVBAinstance類的Instancing屬性具有什麼值?你是否試圖將其設置爲「2 - 公衆不可創造」? – dee 2013-02-18 12:31:22
如果這是你所問的,我已經用Initialize擴展了這個問題。此外,這個相同的代碼運行,所有3種複製方式都可以與舊版MyCOMclass一起使用。 – gajo357 2013-02-18 13:48:11