redim什么意思,
没有办法按你的要求保持原来的数据。
用集合吧。

解决方案 »

  1.   

    下面的示例介绍了如何在为已有的动态数组增加其最末维大小的同时而不清除其中所含的任何数据。ReDim X(10, 10, 10)
    . . .
    ReDim Preserve X(10, 10, 15)同样地,在使用 Preserve 时,只能通过改变上界来改变数组的大小;改变下界则会导致错误。如果将数组改小,则被删除的元素中的数据就会丢失。如果按地址将数组传递给某个过程,那么不要在该过程内重定义该数组的各维的大小。
      

  2.   

    该示例使用 ReDim 语句为动态数组变量分配和重分配存储空间。假设 Option Base 是 1。Dim MyArray() As Integer '声明动态数组。
    Redim MyArray(5) '分配 5 个元素。
    For I = 1 To 5 '循环 5 次。
    MyArray(I) = I '初始化数组。
    Next I下一条语句重定义该数组的大小,并清除其中的元素。Redim MyArray(10) '大小重定为 10 个元素。
    For I = 1 To 10 '循环 10 次。
    MyArray(I) = I '初始化数组。
    Next I下面的语句重定义该数组的大小,但没有清除其中的元素。Redim Preserve MyArray(15) '大小重定为 15 个元素。
      

  3.   

    加上Preserve关键字比如:
    Dim X() as byte
    redim x(10)
    for i=1 to 10
      x(i)=i
    next
    ReDim Preserve X(20)
    for i=1 to 20
      Debug.Print x(i);
    next
    debug.print