【发布时间】:2017-02-04 16:09:47
【问题描述】:
所以我有两个 Class 模块,ClassA 和 ClassB,以及一个模块中的子模块,我在其中尝试将 Class B 中的对象添加到 ClassA 中对象的属性中。
According to the VBE Glossary,类是对象,属性set语句可以添加对象类型,所以看起来应该可以。但是,当我运行测试子时,我得到一个“对象变量或未设置块变量”错误
子:
Sub test()
Dim Class_A_Object As ClassA
Dim Class_B_Object As ClassB
Set Class_A_Object = New ClassA
Set Class_B_Object = New ClassB
Class_B_Object.Class_B_Property = 42
Class_A_Object.Class_A_Property = Class_B_Object
End Sub
A 类:
Private a_Class_A_Property As Object
Public Property Set Class_A_Property(pClass_A_Property As Object)
a_ClassA_Property = pClass_A_Property
End Property
Public Property Get Class_A_Property() As Object
Class_A_Property = a_Class_A_Property
End Property
B类:
Private b_Class_B_Property As Integer
Public Property Let Class_B_Property(pClass_B_Property As Integer)
b_Class_B_Property = pClass_B_Property
End Property
Public Property Get Class_B_Property() As Integer
Class_B_Property = b_Class_B_Property
End Property
【问题讨论】:
-
Set Class_A_Object.Class_A_Property = Class_B_Object -
谢谢,我对示例进行了更改以及其他一些更改,以获得正常运行的版本。再次,非常感谢!
-
就像注释一样,您还可以将集合设置为类的属性,然后将其他类对象放入该集合中以创建层次结构。
-
请不要将您的问题变成答案。如果您愿意,请将您为解决问题所做的工作添加为答案
标签: excel class object class-properties vba