如何在VBA中加入集合

时间:2015-03-12 16:39:08

标签: vba join collections

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

感谢。

3 个答案:

答案 0 :(得分:10)

不幸的是,不,没有内置的东西。

你必须要么

  • 将集合转换为数组(也没有内置,您必须loop through all the items),然后使用Join(array, ";")

  • 加入您的收藏品"艰难的方式" (设置first标记,循环浏览项目,添加";"如果不是first,请清除first,添加项目。

答案 1 :(得分: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 :(得分: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