【问题标题】:how to assign a property of an object to another property of another object using method inside third object with arguments pointing to two objects如何使用第三个对象内的方法将一个对象的属性分配给另一个对象的另一个属性,其中参数指向两个对象
【发布时间】: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


【解决方案1】:

原来我在“链接”类中为我的属性使用了不正确的名称。好消息:代码现在按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多