Ped*_* T. 9 arrays collections vba
是否有一种简单的方法可以在VBA中使用Array中的所有值填充Collection?例如
Dim c As New Collection
Dim a(10) As Variant
...
c.AddAll a
Run Code Online (Sandbox Code Playgroud)
一个简单的解决方案是迭代数组的原因,但我希望现代语言提供开箱即用的这种方法......
Dim c As New Collection
Dim a(10) as Variant
...
For Each item in a
c.Add item
Next item
Run Code Online (Sandbox Code Playgroud)
谢谢你的任何提示!
Jon*_*ton 10
"现代语言"是你的问题所在--VBA/VB6并不是真正的现代 - 多年来都没有进步太多.
如果你需要做很多事情,写一个函数来做循环:
Sub AddAll(ByVal c as Collection, a as Variant)
For Each item in a
c.Add item
Next item
End Sub
Run Code Online (Sandbox Code Playgroud)
或者如果您每次都想要一个新的集合:
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
Run Code Online (Sandbox Code Playgroud)
然后使用它:
Dim c As New Collection
Dim a(10) as Variant
...
AddAll c,a
Run Code Online (Sandbox Code Playgroud)
要么
Dim a(10) as Variant
Dim c as Collection
...
Set c = ToCollection(a)
Run Code Online (Sandbox Code Playgroud)