VBA:在类B的属性中实例化类A.

我是excel VBA OOP的初学者,需要帮助将带有属性的类实例放入另一个类的属性中。 我有一个对我有意义的方法,但是不起作用。 我不确定它只是一个简单的语法/结构错误,或者如果我完全忽略了这个标记。 这是一个说明我的问题的简单例子:

  1. 类A有一个string值的属性。

  2. B类拥有一个拥有A类实例的属性,并且此属性接受一个string参数并将其传递给A类属性。

A类

Private strProp As String Public Property Let Prop(sProp As String) strProp = sProp End Property 

B类

 Private clsA As New ClassA '''DIFFERENT ATTEMPTS OF THE SAME METHOD: Public Property Let ClassA(strNameA As String) clsA.Prop = strNameA End Property 'Public Property Set ClassA(strNameA As String) ' clsA.Prop = strNameA 'End Property 'Public Property Set ClassA(strNameA As String) ' ' Dim xClsA As ClassA ' Set xClsA = New ClassA ' ' xClsA.name = "Foobar" ' clsA = xClsA ' 'End Property ' Public Function message() msgbox(clsA.Prop) End Function 

模块(实践中的类)

 dim xClassB as ClassB set xClassB = new ClassB xClassB.ClassA("Foobar") xClassB.message 'should display Foobar 

我得到的错误:

“我仍然得到一个编译错误:同一属性的属性过程的定义不一致或者属性过程有一个可选参数,一个ParaArray或一个无效的最终参数设置”

A类

 Private strProp As String Public Property Let Prop(sProp As String) strProp = sProp End Property Public Property Get Prop() As String Prop = strProp End Property 

ClassB的:

 Private clsA As New ClassA Public Property Set ClassA(strNameA As String) clsA.Prop = strNameA End Property Public Function message() msgbox(clsA.Prop) End Function 

…并在ClassA中添加一个Get for Prop