分享

Excel之VBA常用功能应用篇:判断数组是空值

 每天学学Excel 2022-02-15

VBA如何判断数组是空值,这个难题告诉你怎么解决

数组在VBA编程中是一项很重要的内容,掌握和学习是一个最基本的环节。

如果对数组运用得当,那么将对数据表格操作有一个很大的帮助作用。

但是vba操作当中,对于数组的判定有一个缺点,无法用相关的函数或方法来判断一个数组是否已经定义,只能判断一个变量是不是数组,函数:isArray即是此功能。

下面就利用一个API函数来进行判断处理,如下图所示:

API指定为Windows系统,其它系统不适用。

这个函数Windows系统自带的文件内部,所以,如果系统文件没有缺失,完全可以正常使用。

具体代码如下图所示:

如果一个数组已经定义或赋值用如下代码判断:

Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saArray() As Any) As Long

Private Sub CommandButton1_Click()

Dim arr()

ReDim arr(0 To 10)

arr = Array(1, 2, 3, 4, 5)

MsgBox SafeArrayGetDim(arr)

If SafeArrayGetDim(arr) = 0 Then '如果值为0表示数组为空或没有初始化

MsgBox "Null:没有初始化数组"

Else

MsgBox "isTrue 数组已经定义或有值存在!"

MsgBox Join(arr)

End If

End Sub

如果一个数组初始化或未赋值用如下代码判断:

Private Sub CommandButton2_Click()

Dim arr()

MsgBox SafeArrayGetDim(arr)

If SafeArrayGetDim(arr) = 0 Then '如果值为0表示数组为空或没有初始化

MsgBox "Null:没有初始化数组"

Else

MsgBox "isTrue 数组已经定义或有值存在!"

MsgBox Join(arr)

End If

End Sub

判断一个变量是不是数组类型:

Dim arr

MsgBox VBA.IsArray(arr) 'arr 不是数组类型

Dim arr()

MsgBox VBA.IsArray(arr) 'arr 是数组类型

数组是一个十分有用的类型,所以在编程过程中将不可避免用到,在此有必要将这些内容进行整理或收藏,以备查询使用。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多