Option ExplicitPrivate strTest() As String
Private Sub Command1_Click()
    ReDim strTest(10)
End Sub
Private Sub Command2_Click()
    On Error GoTo ErrHandle
    
    MsgBox UBound(strTest), vbInformation, "数组已被重定义"
    
    Exit Sub
ErrHandle:
    Select Case Err.Number
    Case 9
        MsgBox "数组未被重定义Redim", vbInformation
    Case Else
    End Select
End Sub
Private Sub Form_Load()
    Command1.Caption = "Redim"
    Command2.Caption = "Check"
End Sub

解决方案 »

  1.   

    private function testarrayredim(byref arrname as XXX) as boolean
    dim lngU as long 
    dim blnR as booleanon error resume next
    lngu = ubound(array-name)
    if err.number= 0  then
        blnr = true
    end if 
    on error goto 0testarrayredim= blnrend function 
      

  2.   

    真是晕,你既然使用了Redim 数组就被改变了,想知道改变了就去查一下数组的元素以及维数的数目
      

  3.   

    谢谢 yangzhaoyu(老妖),AechoJohn(江江)
    有没有更直接的函数?而不用错误捕获?
    用len(动态数组)>0 来判断已经Redim ,是否可靠?