0

我有两个问题。

  1. 我想在一个新的 sub 中添加一个新的对象类型(不确定是哪个)到在底层 sub 中创建的现有集合中。因此,在另一个子中,我想将 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

当您返回调用过程时,集合的计数将增加一并且对象将在集合中。ByRef 的对立面是 ByVal。一旦过程结束,对通过 ByVal 的变量所做的更改就会丢失。

于 2013-06-12T15:36:06.690 回答