快捷搜索:  汽车  科技

vba数组空值怎么去除(VBA如何判断数组是空值)

vba数组空值怎么去除(VBA如何判断数组是空值)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如果一个数组初始

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

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

vba数组空值怎么去除(VBA如何判断数组是空值)(1)

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

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

vba数组空值怎么去除(VBA如何判断数组是空值)(2)

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

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

具体代码如下图所示:

vba数组空值怎么去除(VBA如何判断数组是空值)(3)

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

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 是数组类型

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

欢迎关注、收藏

---END---

猜您喜欢: