VBA:将一个集合附加到另一个集合上,如“附加”;。AddRange";在VB.NET中

VBA:将一个集合附加到另一个集合上,如“附加”;。AddRange";在VB.NET中,vba,Vba,假设我有一个主集合,我想将其他集合添加到其中。我有一些返回集合的可选函数,我想将其附加到现有集合中。有没有像VB.NET中的“.AddRange”这样的命令 VBA代码示例: Public Sub main() Dim masterCollection As Collection Do While addingThings If addManyThings Then masterCollection.AddRange functionRe

假设我有一个主集合,我想将其他集合添加到其中。我有一些返回集合的可选函数,我想将其附加到现有集合中。有没有像VB.NET中的“.AddRange”这样的命令

VBA代码示例:

Public Sub main()
    Dim masterCollection As Collection

    Do While addingThings
        If addManyThings Then
            masterCollection.AddRange functionReturnsCollection
        Else
            masterCollection.Add aThing
        End If
    Loop
End Sub

Private Function functionReturnsCollection() As Collection

End Function

收藏方面不要这样认为。您可以通过系统集合(.Net framework)和带有ArrayList的insertRange访问您提到的方法,例如:

Public Sub test()
    Dim a As Object, b As Object, i As Long
    Set a = CreateObject("System.Collections.Queue")
    a.Enqueue "D"
    a.Enqueue "E"

   Set b = CreateObject("System.Collections.ArrayList")
    With b
        .Add "A"
        .Add "B"
        .Add "C"
        .InsertRange 1, a
    End With

    For i = 0 To b.count - 1
        MsgBox b(i)
    Next i
End Sub
也许你可以设计一个类来在外部模仿它。

公共函数AppendCollections(_
可选的ByVal FirstCollection作为集合_
可选ByVal SecondCollection作为集合_
可选的ByVal ThirdCollection作为集合_
)收藏
Dim ReturnCollection作为Collection,i作为变体
'从空集合开始
Set ReturnCollection=新集合
'附加第一个集合
如果不是第一次收集,那么什么都不是
对于第一个集合中的每个i
返回集合。添加i
接下来我
如果结束
'附加第二个集合
如果不是,第二次收集什么都不是
对于SecondCollection中的每个i
返回集合。添加i
接下来我
如果结束
'附加第三个集合
如果不是第三次收集,那就什么都不是了
对于第三个集合中的每个i
返回集合。添加i
接下来我
如果结束
'返回新集合
Set AppendCollections=ReturnCollection
端函数

append是指向收藏中添加其他物品吗?在这种情况下,方法是。Add@QHarr
.Add
方法将使整个集合成为主集合中的一个项目,而不是根据需要将子集合添加到主集合中。我不想要一系列的收藏品。我想从本身返回项目集合的函数向主集合添加一系列项目。你是说我可以将.NET framework中的对象导入VBA?我是说你可以使用System.Collections中的一些类,如上所示。你是否进行了此操作?我需要用arraylist重构以进行测试,但这是一个非常复杂的过程,所以重构是跨3个模块的