美文网首页
VB-真正完美的判断是否为空数组

VB-真正完美的判断是否为空数组

作者: 神梦无痕 | 来源:发表于2020-10-28 22:45 被阅读0次

    标题: VB 真正完美的判断是否为空数组(就是没有数组成员的意思)
    作者: 神梦无痕(email:smwh@vip.qq.com)
    链接: https://www.jianshu.com/p/d5a510be7112
    版权: 本人所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议。

    • 1)我首先想到的是用 UBound 来判断(很可惜,会弹出错误“下标越界”)
    
        Dim ArrErr()
    
        Debug.Print "【ArrErr() 的数组下标】:" & UBound(ArrErr)
    
    

    • 2)无意间我看到有人说,数组的范围,可以是负数,我立马想到了解决方法
    
        Dim Arr()
    
        ReDim Arr(-1 To -1) '有了这句话就不会弹出错误了
    
        '没有数组成员,就返回 -1
    
        Debug.Print "【Arr() 的数组下标】:" & UBound(Arr)
    
    
    • 3)完整的 VB 例子如下:
    
    Private Sub Form_Load()
    
        '*==============================================================================
    
        '*
    
        '* 标题: VB 真正完美的判断是否为空数组(就是没有数组成员的意思)
    
        '* 作者: 神梦无痕(email:smwh@vip.qq.com)
    
        '* 链接: https://www.jianshu.com/p/d5a510be7112
    
        '* 版权: 本人的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
    
        '*      (https://creativecommons.org/licenses/by-nc-sa/2.5/cn/)
    
        '*==============================================================================
    
        '
    
        ' 1)我首先想到的是用 UBound 来判断(很可惜,会弹出错误“下标越界”)
    
        '  Dim ArrErr()
    
        '  Debug.Print "【ArrErr() 的数组下标】:" & UBound(ArrErr)
    
    
    
    
    
        ' 2)无意间我看到有人说,数组的区间,可以是负数,
    
        '    我立马想到了解决方法,空数组的下标用 -1 表示
    
        '
    
        '
    
        '----------定义了数组型变量----------
    
        Dim Arr() As String  '可以指定类型,也可以不指定
    
    
    
        '利用这句话,来保证不会弹出错误
    
        ReDim Arr(-1 To -1)
    
    
    
        '测试获取数组下标(没有报错了),空数组返回 -1
    
        Debug.Print "【Arr() 的数组下标】:" & UBound(Arr)
    
    
    
        '给数组动态赋值
    
        ReDim Preserve Arr(-1 To UBound(Arr) + 1): Arr(UBound(Arr)) = "作者:"
    
        ReDim Preserve Arr(-1 To UBound(Arr) + 1): Arr(UBound(Arr)) = "    神梦无痕"
    
        ReDim Preserve Arr(-1 To UBound(Arr) + 1): Arr(UBound(Arr)) = "QQ:"
    
        ReDim Preserve Arr(-1 To UBound(Arr) + 1): Arr(UBound(Arr)) = "    1042207232"
    
    
    
        For i = 0 To UBound(Arr)
    
            Debug.Print "【" & i & "】" & Arr(i)
    
        Next
    
    
    
        Debug.Print "【Arr() 的数组下标】:" & UBound(Arr)
    
        Debug.Print
    
    
    
        '----------未定义成数组型变量----------
    
        Dim ABC '这种不指定数据类型更好
    
    
    
        ABC = Array() '利用 Array 创建的数组就不会弹出错误
    
    
    
        '空数组返回 -1
    
        Debug.Print "【ABC 的数组下标】:" & UBound(ABC)
    
    
    
        '给数组动态赋值
    
        ReDim Preserve ABC(UBound(ABC) + 1): ABC(UBound(ABC)) = "作者:"
    
        ReDim Preserve ABC(UBound(ABC) + 1): ABC(UBound(ABC)) = "    神梦无痕"
    
        ReDim Preserve ABC(UBound(ABC) + 1): ABC(UBound(ABC)) = "QQ:"
    
        ReDim Preserve ABC(UBound(ABC) + 1): ABC(UBound(ABC)) = "    1042207232"
    
        For i = 0 To UBound(ABC)
    
            Debug.Print "【" & i & "】" & ABC(i)
    
        Next
    
        Debug.Print "【ABC 的数组下标】:" & UBound(ABC)
    
    
    
    End Sub
    
    

    相关文章

      网友评论

          本文标题:VB-真正完美的判断是否为空数组

          本文链接:https://www.haomeiwen.com/subject/boltvktx.html