是不是用NULL来判断
即 a(id)=NULL

解决方案 »

  1.   

    UBound 函数与 LBound 函数一起使用,用来确定一个数组的大小。
      

  2.   

    if id<uBound(a,1) and id >lBound(a,1) then
    ......
    end if
      

  3.   

    用UBOUNDL函数可以返回数组的上标,下标
      

  4.   

    说得都对,但实际上若是结构数组
    Public type PrjInfo
      PrjID as long
      PrjCaption as string
    end typedim PrjInfoAry() as prjInfo若第n项未定义,则取值 PrjInfoAry(n).PrjID 时会出错,“下标越界”,怎么判断这个结构数组元素是否存在。
      

  5.   

    明白。
    试了一下,方发觉这个错误根本不存在,我把结构数组跟以前常用的控件数组搞混了。
    还是 henrryzhang(North Wolf) 回答的切中要害。
    给分嘍。
      

  6.   

    Private Sub Form_Load()
    Dim PrjInfoAry(3) As PrjInfo
    PrjInfoAry(1).PrjID = "1"
    PrjInfoAry(1).PrjCaption = "a"
    PrjInfoAry(3).PrjID = "2"
    PrjInfoAry(3).PrjCaption = "b"
    End Sub
    我查PrjInfoAry(2).PrjID的值就是0 ,PrjInfoAry(2).PrjCaption的值就是空,
    不会出现“下标越界”
    你说的下标越界可能是Dim PrjInfoAry(3) As PrjInfo
    但你却取PrjInfoAry(4).PrjID的值,那肯定出错,