IsEmpty函数 不行
你还是这样吧
on error goto hError
b=a(0)
redim a(ubound(a)+1)
exit sub
hError:
redim a(0)
或者用的全局变量bIni as boolean来存储吧。

解决方案 »

  1.   

    首先判断最后一项是否有值,
    根据数据类型的不同,默认值也不一样:
    数值型:0
    字符型:““
    if a(ubound(a))=? then
    else
    endif注意数组是从0开始还是从1开始。
    从0时用a(ubound(a)-1)
      

  2.   

    我自己常这样写:
    private sub form_load()
       redim a(0)
    end sub
    ....
    ...
    private sub yoursub()
       if ubound(a)=0 then
          redim a(1 to 1)
       else
          redim preserve a(1 to ubound(a)+a)
       endif
      ....
    end sub
      

  3.   

    to  hmily_girl(冷冰冰):
    如果数组没有定义过用UBOUND会出错的。
    dim a() as integer
    dim b as integer
    b=ubound(a)   '出错!!
      

  4.   

    if ubound(a)=0 then
          redim a()
    else
          redim preserve a(1 to ubound(a)+1)
    end if
      

  5.   

    现在编译没又错误,用的是daviddivad(你真行,居然比我还快!)的方法
      

  6.   

    下面的代码调试过,没问题!    
        Dim a()
        Dim tmp As Variant
        
        Err.Clear
        On Error Resume Next
        tmp = UBound(a)
        If Err Then ReDim a(0)
        On Error GoTo 0
        ReDim Preserve a(UBound(a) + 1)