首页 > 解决方案 > VBA:将一个集合附加到另一个集合上,例如 VB.NET 中的“.AddRange”

问题描述

假设我有一个要添加其他收藏的主收藏。我有一些返回集合的可选函数,我想将其附加到我现有的集合中。是否有类似 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

标签: vba

解决方案


不要对收藏这么想。您可以通过 Systems Collection(.Net 框架)和使用 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

也许您可以设计一个类来在外部模仿这一点。


推荐阅读