清空需要一个一个置空
for i=1 to ubound(arry1)
arry1(1)=''
loop每次付值时redim一下

解决方案 »

  1.   

    1.erase 
    2.不太明白你的意思
    redim preserve alist(n)
      

  2.   

    landog(landog) : 每次赋值时redim不会使前面的数据丢失么?不好意思我现在手里没有vb没办法试
      

  3.   

    dim iArray() as integerredim preserve iarray(数组上届)erase iarray
      

  4.   

    加preserve 关键字不会使前面的数据丢失
      

  5.   

    1.Dim StrVarArray(10) As String   '变长的 String 数组。
    Erase StrVarArray   '将每个元素设为零长度字符串 ("")。2.假设 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 个元素。
      

  6.   

    多谢大家的回答,我已经明白了。但还有个问题。请问怎么才能取得一个数组中已赋值的元素的个数,不是上限UBound()
      

  7.   

    第一个问题:
      建立动态数组:
      Redim Preserve N[Num]'N为数组长度  清空动态数组:
      Redim Preserve N[0]
    第二个问题:
      Static Num As Integer 
      Dim I      As Integer
      Redim N()  As Integer'假设该数组类型为[整数]
      Public Sub ArrayIn()
        For I=1 To 8 '在循环中一次写入8位
          Num=Num+1
          Redim Preserve N(Num)
          Num(Num)=I
          Redim Preserve N
        Next 
      End Sub
     If Num<10 Then ArrayIn
      

  8.   

    多谢大家的回答,我已经明白了。但还有个问题。请问怎么才能取得一个数组中已赋值的元素的个数,不是上限UBound()
      

  9.   

    wangluonanhai(网络男孩) :请问dictionry
    是什么函数,msdn中没找到,能给个例子么?谢谢