是否有一种简单的方法可以在VBA中使用Array中的所有值填充Collection? 例如
之类的东西Dim c As New Collection
Dim a(10) As Variant
...
c.AddAll a
一个简单的解决方案是迭代数组的原因,但我希望现代语言提供开箱即用的方法...
Dim c As New Collection
Dim a(10) as Variant
...
For Each item in a
c.Add item
Next item
感谢任何提示!
答案 0 :(得分:10)
“现代语言”是你的问题所在--VBA / VB6并不是真正的现代 - 多年来都没有提升过多。
如果您需要做很多事情,请编写一个函数来进行循环:
Sub AddAll(ByVal c as Collection, a as Variant)
For Each item in a
c.Add item
Next item
End Sub
或者如果您每次都想要一个新的集合:
Function ToCollection(a as Variant) As Collection
Dim c As New Collection
For Each item in a
c.Add item
Next item
Set ToCollection = c
End Function
然后使用它:
Dim c As New Collection
Dim a(10) as Variant
...
AddAll c,a
或
Dim a(10) as Variant
Dim c as Collection
...
Set c = ToCollection(a)