Dim a(3) As Single
Dim b(3) As Single
Dim c As New Collection
Private Sub Command1_Click()
    For i = 1 To 3
        a(i) = i
    Next i
    c.Add a, "a" '将数组a放入集合c
End SubPrivate Sub Command2_Click()SetArrayV a, b   '当直接用a来进行付值,不会出错,
MsgBox b(3)
MsgBox c.Item("a")(3)If IsArray(c.Item("a")) Then    SetArrayV (c.Item("a")), b  '用了集合中取出的a就报:类型不匹配
    
End IfEnd Sub'数组付值过程。
Private Sub SetArrayV(ByRef arrFrom() As Single, ByRef arrTo() As Single)    Dim i, n As Single   n = (UBound(arrFrom) - LBound(arrFrom)) + 1    For i = LBound(arrFrom) To UBound(arrFrom)
       arrTo(i) = arrFrom(i)
    NextEnd Sub

解决方案 »

  1.   

    集合默认存放的是对象,将基本类型数据保存进集合也可以,但放入集合后,数据是封闭的,不能直接赋值,或改变集合中所保存变量的值。所以集合一般不用于存放经常变更的数据,要修改集合中数据,就先用变量取出后,同时从集合中删除,修改后,再加入集合。附:不知道SetArray是个什么人物?好用吗?VB中数组间可直接赋值,只需等号左边是动态的即可。
      

  2.   

    谢谢homezj(小吉)的帮助,但本人对vb不是很熟,能不能说清楚一点