如何在VBA中加入集合

问题描述 投票:8回答:3

有没有办法在VBA中加入一个集合?我可以找到join(array,“;”),但是这个函数不能应用于集合。

谢谢。

vba join collections
3个回答
10
投票

不幸的是,不,内置任何东西。

你必须要么

  • 将集合转换为数组(没有内置的,你必须loop through all the items)然后使用Join(array, ";")
  • 加入你的收藏“艰难的方式”(设置first标志,循环项目,添加“;”如果不是first,清除first,添加项目)。

4
投票

这是如何加入它:

Join(CollectionToArray(colData), ",")

功能:

Public Function CollectionToArray(myCol As Collection) As Variant

    Dim result  As Variant
    Dim cnt     As Long

    ReDim result(myCol.Count - 1)

    For cnt = 0 To myCol.Count - 1
        result(cnt) = myCol(cnt + 1)
    Next cnt

    CollectionToArray = result

End Function

2
投票

我需要澄清以下问题不是上述问题的答案。但是,对于到达这里想知道如何合并集合的人(发生在我身上),下面的代码会将集合(col2)的内容添加到另一个集合(col1):

Sub addColToCol(col1 As Collection, col2 As Collection)
    Dim i As Integer

    For i = 1 To col2.Count
        col1.Add col2.Item(i)
    Next i
End Sub

如果要保留每个集合的内容,请声明其他集合。

Dim super_col As New Collection

addColToCol super_col, col1
addColToCol super_col, col2
© www.soinside.com 2019 - 2024. All rights reserved.