vba二维数组问题

Dim cc As Collection
Set cc = New Collection
cc.Add (Array(1, 1, "aa"))
cc.Add (Array(2, 2, "bb"))
For Each Item In cc
Item(0) = 3
Next

上面结果是不对的
我想把Array数组中的值1替换成3 ,请问有知道怎么做的吗

你的问题和二维数组有关系吗?...

dim i%
i = 1
For Each item In cc
 item(0) = 3
 '这里输出看看,明显item(0)已经改为3了,
 '但是不代表集合中的数组元素也变了,item并不是指向cc元素的地址,
 '可以认为这里的item是cc中数组的副本,两个不是一个东西,所以...
 Debug.Print item(0), cc(i)(0)
 i = i + 1
Next

'如果要达到你的目的,请这样:

dim newcc as new collection
For Each item In cc
 item(0) = 3
 newcc.add item
Next
set cc=newcc
...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-14
Collection一旦赋值则不可更改,按照你的想法可以使用二维数组,或者字典Dictionary
相似回答