0

2 つの質問があります。

  1. 基になるサブで作成された既存のコレクションに、新しいサブで新しいオブジェクト タイプ (どちらか不明) を追加したいと考えています。したがって、別のサブでは、このコレクション (セキュリティ) に psecs.pNom を追加したいと思います。

  2. この既存のコレクション (セキュリティ) にさらに行 (secId) を追加したいと考えています。再び別のサブで。

これを行う方法?

ありがとう、アミール

Sub testclass()

rijaantal_LenDump = Application.CountA(Sheets("Len_Dump").Range("A:A"))
kolomaantal_LenDump = Application.CountA(Sheets("Len_Dump").Range("1:1"))

Sheets("Len_Dump").Select
positions = Sheets("Len_Dump").Range(Cells(1, 1), Cells(rijaantal_LenDump, kolomaantal_LenDump))

kolomSecID = 8


Set securities = New Collection

For i = 1 To rijaantal_LenDump
Set psecs = New CMpos
psecs.secId = CStr(positions(i, 8))
psecs.L4 = CStr(positions(i, 4))
If Not Exists(securities, psecs.secId) Then securities.Add psecs, psecs.secId
Next i

Debug.Print securities.Count

End Sub
4

1 に答える 1

0

コレクション ByRef を他のプロシージャに渡します。

Public Sub AddAnotherObject(ByRef colSecurities As Collection)

    Dim objOther As SomeOtherObject

    Set objOther = New SomeOtherObject

    colSecurities.Add objOther, CStr(objOther.ID)

End Sub

呼び出し元のプロシージャに戻ると、コレクションのカウントが 1 つ増え、オブジェクトがコレクションに含まれます。ByRef の反対は ByVal です。ByVal で渡された変数への変更は、プロシージャが終了すると失われます。

于 2013-06-12T15:36:06.690 に答える