如何知道数组实际使用的大小,
例如  dim arr(16) as string但是,只有 arr(0),和 arr(1),实际 使用的大小只是两个,
那个函数能做到?谢谢。

解决方案 »

  1.   

    可以声明一个动态数组,然后用ubound(数组名)取得数组的实际大小。或者可以用下面的方法:
    dim n as integer 
    for i=0 to ubound(arr)
        if arr(i)<>"" then
           n=n+1
        end if
    next
    最后n就为实际数组大小
      

  2.   

    pc_hang(王子草) 可能是对的..关注中
      

  3.   

    pc_hang(王子草) :如果数组中,又一个下标值为"" 的呢??
    如:a(0) = "aaa"    a(1) = "bbb" a(2) = ""  a(3)= "ccc" .另--: 怎样清空一个数组?????谢谢。
      

  4.   

    “如何知道数组实际使用的大小”
    UBound只能返回数组的下标值,而不能返回数组使用了几个。你可以根据数组变量的值来判断,比如Boolean初始是False 
    String 是 ""
    数值变量,比如 Long,Integer 是 0
    当然,如果你给这些数组变量赋值了0或者""就没有办法了
     
    UBound 函数      返回一个 Long 型数据,其值为指定的数组维可用的最大下标。语法UBound(arrayname[, dimension])UBound 函数的语法包含下面部分:部分 描述 
    arrayname 必需的。数组变量的名称,遵循标准变量命名约定。 
    dimension 可选的;Variant (Long)。指定返回哪一维的上界。1 表示第一维,2 表示第二维,如此等等。如果省略 dimension,就认为是 1。 
    说明UBound 函数与 LBound 函数一起使用,用来确定一个数组的大小。LBound 用来确定数组某一维的上界。对具有下述维数的数组而言,UBound 的返回值见下表:Dim A(1 To 100, 0 To 3, -3 To 4)语句 返回值 
    UBound(A, 1) 100 
    UBound(A, 2) 3 
    UBound(A, 3) 4 
      

  5.   

    a(10,10)
    清空数组:erase a