Dim aa() as double现在需要在一个过程中判断一下,如果aa数组已经经过Redim声明就进行一个操作,如果没有就进行另外一个操作。
不能使用产生错误的方法实现。不知如何判断。
谢谢!!!!

解决方案 »

  1.   

    Dim bytAry() As Long
        Debug.Print IsArray(bytAry)
        Debug.Print VarType(bytAry)
        Debug.Print IsNull(bytAry)
        Debug.Print IsEmpty(bytAry)
        
    不用错误捕获的方法,只用了上述几个法子依旧无法判断:(,关注学习。
      

  2.   

    两者返回的都一样:
    True
     8195 
    False
    False我现在还没有想到什么好办法。
    使用了一个笨办法:
    设了一个全局变量,在ReDim的地方赋值,表示已经ReDim了,然后在需要判断的过程中直接判断这个全局变量。已经发现有很多时候VB的局限或者自己不够了解时,用个全局变量就可以变通的解决。只是多了很多这样的全局变量觉得有点怪怪的。:(
      

  3.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim a()
        Debug.Print ismalloc(a)
        ReDim a(10)
        Debug.Print ismalloc(a)
    End SubPrivate Function ismalloc(ByRef a()) As Boolean
    'private function ismalloc( byref a as variant ) as boolean
        On Error GoTo errhandle
        Dim i As Integer
        i = UBound(a)
        ismalloc = True
        Exit Function
    errhandle:
        Err.Clear
        ismalloc = False
    End Function
      

  4.   

    Ubound(数组)=-1 时说明没有ReDim
      

  5.   

    直接用IsEmpty不就可以了,用了Redim 后不是Empty