全民一起VBA提高篇第十一课:Do循环和空值

Do循环

Do While i<10 … Loop
当i小于10时,执行循环
Do Until i<10 … Loop
直到i小于10时,停止循环

Do While cells(i,1)<>""

Do Until cells(i,1)=""

上面是先判断再执行

Do … Loop While i<5

Do… Loop Until i<5

下面这个是先执行再判断

哪个习惯就用哪个,功能可以互相替代

空值问题

理解不透空值,会对一些出错感到无从下手,找不到原因

  1. 数值型:0
  2. 字符串:“”
  3. 变体:empty
  4. 对象:nothing
  5. 逻辑类型:Null
  6. 传参:ismissing

变体类型

Option Explicit
Sub demo()

    Dim m
    'm可能是0也可能是空字符串
    '具体要看应用场景
    '但这里微软给了新的数据类型empty
    '出现在算术中为0
    '用于文本处理为空字符串
    If IsEmpty(m) Then
        MsgBox "m是empty"
    Else
        MsgBox "m不是empty"
    End If
    
End Sub


在这里插入图片描述

Option Explicit
Sub demo()

    Dim m
    
    m = 3
    
    If IsEmpty(m) Then
        MsgBox "m是empty"
    Else
        MsgBox "m不是empty"
    End If
    
End Sub

在这里插入图片描述

对象类型

Option Explicit
Sub demo()

    Dim w As Worksheet
    
    If w Is Nothing Then
    '没有isnothing这个函数
    MsgBox "未指定工作表"
    
    Else
    
        MsgBox "指定了工作表"
    
    End If
    
End Sub


在这里插入图片描述

逻辑类型

判断合并单元格,用isNull
一般针对合并单元格来用

发布了26 篇原创文章 · 获赞 5 · 访问量 1090

猜你喜欢

转载自blog.csdn.net/qq_43568982/article/details/104047407