1

私には一連の所有者がいて、それぞれに独自の機会があります。

2つのクラスモジュールがあります。1つは多数のプロパティを持つClmOpportunityで、もう1つは単一の名前プロパティとClmOpportunityオブジェクトを格納するコレクションを持つClmOwnerです。

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を渡していますので、問題ないはずです。

どんな助けでも大歓迎です!

4

1 に答える 1

6

戻り値がない場合は、括弧を使用しないでください...

owners.item(overallOwner).addOpportunity item

...コレクションは文字列値をキーとして期待しているため、「型の不一致」エラーが発生します。そのため、addOpportunity関数を調整する必要があります(返された関数を追加する予定がない場合は、おそらくSubになるはずです)。価値)

于 2012-08-31T22:09:59.750 に答える