分享

如何判断VBA中的一个数组是否已经定义其维数上限下限

 scwencai 2017-04-17

        最不动脑子的方法,直接写一个函数用错误陷阱捕捉就可以了。

        判断某个数组是否已经定义了下标,如果已经定义返回true

 Function IsRedim(ByRef v As Variant) As Boolean

    Dim i As Long

On Error GoTo IsRedim_Err

    i = UBound(v)

    IsRedim = True

    Exit Function

IsRedim_Err:

    Select Case Err.Number

    Case 0

    Case 9

        Debug.Print Err.Number, Err.Description, '预定义错误'

    Case Else

        Debug.Print Err.Number, Err.Description

    End Select

End Function

'在模块中运行,以下过程测试IsRedim函数的效果

Function RunTest()

    Dim a() As String

    Dim b() As String

    ReDim a(5)

    Debug.Print IsRedim(a)  '返回true

    Debug.Print IsRedim(b)  '返回false

End Function


或者  用not逻辑符也可以判断 

Function RunTest()

    Dim a() As String

    Dim b() As String

    ReDim a(5)

    

    Debug.Print Not a   '返回 -48665169 ,不是 -1

    Debug.Print Not b   '返回 -1 表示其未指定下标

End Function


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约