我有有一个自定义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