【问题标题】:VBA Passing Object into another Objects CollectionVBA将对象传递到另一个对象集合
【发布时间】:2012-08-26 17:17:07
【问题描述】:

我有一组所有者,每个人都有自己的一组机会。

我有两个类模块,具有一堆属性的 ClmOpportunity 和具有单个名称属性的 ClmOwner 和一个存储 ClmOpportunity 对象的集合:

Public name As Variant
Private opps As New collection

Public Function addOpportunity(opp As ClmOpportunity)

    opp.ID = opps.Count + 1
    opps.Add opp, opps.Count + 1

End Function

这些所有者对象也存储在我的主模块的集合中。当我尝试使用 addOpportunity 函数时,如下所示:

Dim item As New ClmOpportunity

item.name = "test"

owners.item(overallOwner).addOpportunity (item)

我得到错误:

“对象不支持该属性或方法”

我对 VBA 很陌生,我不明白为什么会这样,我正在传递一个 ClmOpportunity,所以应该没问题吧?

任何帮助将不胜感激!

【问题讨论】:

    标签: excel class vba collections module


    【解决方案1】:

    如果没有返回值,则不要使用括号...

    owners.item(overallOwner).addOpportunity item
    

    ...然后你会得到一个“类型不匹配”错误,因为集合需要一个字符串值作为键,所以你需要调整你的 addOpportunity 函数(如果你不这样做,它可能应该是一个 Sub '不打算添加返回值)

    【讨论】:

      猜你喜欢
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 2019-05-02
      • 2023-03-24
      • 1970-01-01
      • 2019-01-18
      相关资源
      最近更新 更多