在复杂的代码开发过程中,程序逻辑结构可能存在多个分支,使用变量时,可能需要判断变量是否为空,例如对于Range变量,可以使用如下代码。

Sub RangeDemo()Dim rngAll As RangeDim rng1 As RangeSet rng1 = [a1:b3]If rngAll Is Nothing ThenSet rngAll = rng1ElseSet rngAll = Union(rngAll, rng1)End If
End Sub

【代码解析】
第5行代码使用Is Nothing判断Range对象变量rngAll是否为空。
如果为空,那么第6行代码使用Set关键字为对象变量赋值。
如果不为空,那么第7行代码使用Union函数合并单元格区域。
rngAll为空时,使用Union函数合并单元格区域,将产生错误号5的运行时错误。

但是Is Nothing仅适用于对象变量,无法判断普通变量和数组变量,有的同学知道VBA中有IsEmpty函数,从名字看似乎就是为此而生的,咱们测试一下。

Sub demo1()Dim a() As IntegerDim b() As VariantDim d As IntegerDim e As Variant    If IsEmpty(a) Then Debug.Print "整数数组a为空"If IsEmpty(b) Then Debug.Print "变体数组b为空"If IsEmpty(c) Then Debug.Print "未声明变量c为空"If IsEmpty(d) Then Debug.Print "整数变量d为空"If IsEmpty(e) Then Debug.Print "变体变量e为空"    c = 1e = 2If IsEmpty(c) Then Debug.Print "未声明变量为空" Else Debug.Print "c不为空"If IsEmpty(e) Then Debug.Print "变体变量为空" Else Debug.Print "e不为空"
End Sub

【代码解析】
代码非常简单,用于测试不同变量的结果,输出结果如下。

IsEmpty函数仅适用于变体变量(未声明的变量,默认为变体变量),对于变体数组也不适用。第11至12行代码赋值后,第13至14行代码可以检测到变量不为空。


那么到底如何判断数组是否为空呢?其实也不复杂,

Sub demo2()Dim a() As IntegerOn Error Resume NextLB = LBound(a)If Err.Number = 9 ThenDebug.Print "数组为空"ElseDebug.Print "数组不为空"End IfOn Error GoTo 0
End Sub

【代码解析】
第3行代码忽略运行时错误继续代码执行。
第4行代码使用LBound函数读取变量的下标下界。
如果数组为空,那么将产生错误号为9的运行时错误,第5行代码捕获错误,输出提示信息。
第10行代码恢复系统错误处理机制。

如果使用如下代码声明数组,数组中每个元素的值都为零,因此数组不为空。

Sub demo3()Dim a(1 To 2) As IntegerOn Error Resume NextLB = LBound(a)If Err.Number = 9 ThenDebug.Print "数组为空"ElseDebug.Print "数组不为空"End IfOn Error GoTo 0
End Sub

VBA中如何判断数组为空相关推荐

  1. 关于js中的判断数组为空的问题

    如果你在查询一个文档,它啥都没存,但是doc就是返回了一个[]: User.find({email: userEmail}, {avatar: 1}, function (err, doc) {let ...

  2. php判断数组的值是否为空,php中如何判断数组是否为空

    PHP判断数组为空首选方法:count($arr),size($arr); (推荐学习:PHP视频教程) 使用这个函数就好了 count 如果输出为0的话 那么就这个数组就是空的的下面就是简单的测试代 ...

  3. php如何判断二维数组为空,PHP判断数组为空的具体方式

    在学习PHP语言的时候,初学者往往会对数组感到一些棘手.不过在通过深入的学习之后,我们会发现,这些其实并没有想象中的困难.我们今天就要向大家介绍PHP判断数组为空的具体方式,希望能让新手们了解一些新知 ...

  4. lua中 高效判断数组(table)中是否存在某个字符 值

    lua中高效判断数组(table)中是否存在某个字符值 publish:June 28, 2016 -Tuesday by 04007 本站原创文章,转载请注明文章出处:www.04007.cn 在P ...

  5. js中判断空数组和空对象的方法

    复习的时候做一些学习的笔记总结. javascript的值的类型: 原始值:number.string.boolean.undefined.null.symbol(ES6).bigint(ES10) ...

  6. php判断数组是否存在字符串中,php判断数组元素中是否存在某个字符串的方法

    今天在写一个函数的时候,需要用到判断数组中是否存在某个字符串,方便我们继续后面的操作,这里简单为大家介绍下,需要的朋友可以参考下 方法一:采用in_array(value,array,type) ty ...

  7. Java中高效判断数组中是否包含某个元素

    如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作.同时,这个问题在Stack Overflow中也是一个非常热门的问题.在投票比较高的几个答案中给出了几种 ...

  8. java判断数组为空

    int [][] array = new int [2][3]; array.length 这是获取数组有多少行 array[0].length 这是获取有多少列 判断是否为空的语句就是 if(arr ...

  9. java中判断数组为空

    一维数组 //一维数组 int[] array; //array == null 表示array为空 //array.length ==0 表示array = {} if(array == null ...

最新文章

  1. CI类实现session基本用法
  2. 在c语言中下面指针,c语言指针的知识点
  3. DCMTK:测试DcmSCPPool类,包括DcmSCP和DcmSCU交互
  4. 常用JavaScript的高级技巧
  5. instance 怎么获得自己的 Metadata - 每天5分钟玩转 OpenStack(169)
  6. 资源放送丨《Oracle 19c x86下移经验分享》PPT视频
  7. 网络编程-Socket介绍
  8. JavaScript函数节流和函数防抖之间的区别
  9. Kotlin — 适用于数据科学
  10. 深度分析:PSP3000被破解 狂欢?还是哀悼?
  11. 前端开发实习面试题(Vue篇)
  12. android扫一扫 二维码显示结果中文乱码
  13. Cloudera 的开放湖仓采用dbt Core增压
  14. 植物大战僵尸修改向日葵无限吐阳光详细步骤~包含排除不符合条件的地址的讲解,以及如何观察地址情况等
  15. bugkuCTF之散乱的密文
  16. 防止按钮在短时间内被多次点击多次触发事件
  17. 禁用win10无用服务,提高Win10系统游戏性能!
  18. 用Rest assured作API自动化集成测试
  19. 用html制作学生成绩表格代码,利用Excel制作学生成绩表.doc
  20. 关键字驱动自动化测试

热门文章

  1. C# Unity塔防小游戏 答辩PPT截图
  2. 一文彻底搞懂java单例模式
  3. IP数据包的分析实例
  4. Mybatis中<trim>标签用法
  5. python selenium 实现快手自动评论
  6. 网络安全-HW娱乐板块-你们都是天才~
  7. 人工智能——RNN手写字体识别
  8. 宏宇社:国外lead入门教程(四)lead任务必备软件
  9. Vue的事件处理,点击事件
  10. git使用ssh进行连接