【发布时间】:2021-10-10 22:29:15
【问题描述】:
VBA问题,听起来可能很复杂,但大致思路如下:
我有一个名为“square”的类,其属性“inputA”、“inputB”为只写,“outputA”、“outputB”为只读。
我还有一个名为“triangle”的类,其属性“inputA”、“inputB”、“outputA”、“outputB”也如上。
我还有一个名为“circle”的类,其属性与上述相同。每个类对输入做不同的事情并将其传递给输出。
我创建了一个名为“link”的类,其方法名为“link_between”,两个参数“object1”和“object2”指向从上面的类创建的对象。
链接类方法如下:
Sub link_between(new_object1 As Object, new_object2 As Object)
Dim object1, object2
Set object1 = new_object1
Set object2 = new_object2
Set object2.inputA = object1.outputA
Set object2.inputB = object1.outputB
End Sub
这个方法的目的是我想用它来链接不同对象的属性,比如'square'和'triangle'或'triangle'和'circle',只需在方法中引用它们。
不幸的是,我收到一个错误'对象不支持此属性或方法'。对象在方法内可见,因为它们是公共对象
要实例化链接对象的子是:
Sub CommandButton4_Click()
Set link1 = New link
link1.link_between square_1, triangle_1
End Sub
“链接”类在那里,所以我可以在对象之间创建多个链接。
任何帮助将不胜感激,因为我无法弄清楚为什么不能以这种方式分配对象的属性
我也尝试使用实际对象作为参数:
Sub link_between(new_object1 As square, new_object2 As triangle)
但这也无济于事。
我希望有人以前做过,并且能够帮助我理解我做错了什么。我在这个论坛上找不到任何类似的问题或任何对我有帮助的东西。
【问题讨论】:
-
您真的将属性命名为
inputB吗?这是一个保留的标识符。 -
财产的名称无所谓,这里只是用来表示财产的用途,反正我把这个整理出来了,所以我结束了这个问题。原来我在“链接”类中为我的属性使用了不正确的名称。好消息:代码现在按预期工作。
标签: excel vba class methods properties