• Excel-VBA 快速上手(二、条件判断和循环)



    一、条件判断


    1.1. IF 判断


    语法

    IF 判断的语法和其他编程语言大同小异

    If 条件判断 Then
      '条件判断成立时的逻辑   
    ElseIf 条件判断 Then
      '条件判断成立时的逻辑
    Else
      '条件都不满足时的逻辑 
    End If
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    示例

    代码:

    '函数内对参数进行条件判断
    Function judge(num)
     If num Mod 2 = 0 Then
       Debug.Print "参数是偶数"
     ElseIf num Mod 2 <> 0 Then
       Debug.Print "参数是奇数"
     Else
       Debug.Print "非法数字"
     End If
    End Function
    
    '调用函数
    Sub main()
      judge 2
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    运行效果:
    IF判断

    1.2. Select Case 判断


    普通语法

    Select Case '要判断的变量、也可使用表达式,相当于对表达式结果的值进行判断
      Case Is '大于、小于、等于、大于等于、小于等于、不等于判断
        '满足条件的逻辑
      Case Is '大于、小于、等于、大于等于、小于等于、不等于判断
        '满足条件的逻辑
      Case Else
        '条件都不满足时的逻辑
    End Select
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    普通语法示例

    代码:

    '函数内对参数进行条件判断
    Function judge(num)
      Select Case num
        Case Is > 0
          Debug.Print "参数是正数"
        Case Is < 0
          Debug.Print "参数是负数"
        Case Else
          Debug.Print "参数是0"
      End Select
    End Function
    
    '调用函数
    Sub main()
      judge 0
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    运行效果:

    Select条件

    数值区间语法

    Select Case '要判断的变量、也可使用表达式,相当于对表达式结果的值进行判断
      Case 区间起始数值 To 区间结束数值
        '满足条件的逻辑
      Case Else
        '条件都不满足时的逻辑
    End Select
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    数值区间语法示例

    代码:

    '函数内对参数进行条件判断
    Function judge(num)
      Select Case num
        Case 0 To 100
          Debug.Print "参数区间是0-100"
        Case 101 To 200
          Debug.Print "参数区间是100-200"
        Case Else
          Debug.Print "参数是其他区间"
      End Select
    End Function
    
    '调用函数
    Sub main()
      judge 100
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    运行效果:
    Select区间

    1.3. IIF 判断


    IIF判断与其他编程语言中的三目运算差不多,适用于按条件赋值的场景

    语法

    IIf(条件判断, 满足条件时的返回值, 不满足条件时的返回值)
    
    • 1

    示例

    代码:

    '函数内对参数进行条件判断
    Function judge(num)
      Debug.Print IIf(num Mod 2 = 0, "参数是偶数", "参数是奇数")
    End Function
    
    • 1
    • 2
    • 3
    • 4

    运行效果:

    IIF判断

    二、循环


    2.1. For 循环


    For 循环可以按照次数进行循环,也可以对数组内容进行遍历


    2.1.1. 按次数循环


    语法

    For 变量名 = 起始数值 To 终点数值 Step 步长
      循环体
    Next 变量名
    
    • 1
    • 2
    • 3

    示例

    代码:

    Sub main()
      For num = 1 To 20 Step 2
       Debug.Print num
      Next num
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行效果:

    For按照次数循环

    2.1.2. 数组遍历


    语法

    For Each 数组元素临时变量 In 数组
      循环体
    Next 数组元素临时变量
    
    • 1
    • 2
    • 3

    示例

    代码:

    Sub main()
      Dim items
      items = Array(1, 2, 3, 4, 5, 6)
      For Each Item In items
        Debug.Print Item
      Next Item
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    运行效果:
    ForEach遍历


    2.2. Do 循环


    Do Loop Until 是满足条件后中止循环,Do While Loop 是满足条件后开始循环,Do Loop Until 不管条件是否满足,
    都会先执行一次循环体内容,也就是说 Do Loop Until 最少会循环一次


    2.2.1 Do Loop Until


    语法

    Do
      循环体
    Loop Until 中止条件
    
    • 1
    • 2
    • 3

    示例

    代码:

    Sub main()
      Dim count As Integer
      count = 1
      Do
        count = count + 1
        Debug.Print count
      Loop Until count = 2
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    运行效果:
    DoLoopUntil循环

    2.2.2 Do While Loop


    语法

    Do While 循环条件
      循环体
    Loop
    
    • 1
    • 2
    • 3

    示例

    代码:

    Sub main()
      Dim count As Integer
      count = 1
      Do While count < 10
        Debug.Print count
        count = count + 1
      Loop
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    运行效果:
    DoWhileLoop

    2.3 提前中止循环


    可以使用 End 关键字来提前中止循环,常用的场景是在集合中查找某个元素,当元素找到后就没必要继续循环下去

    示例

    代码:

    Sub main()
      Dim count As Integer
      count = 1
      Do While count < 10
        Debug.Print count
        count = count + 1
        If count = 3 Then
          End
        End If
      Loop
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行效果:
    提前中止循环

  • 相关阅读:
    离子液体N-丙基-吡啶二氰胺盐[C3py][DCA]|N-丙基-吡啶二氰胺[C3py][DCA]|齐岳
    LeetCode108. Convert Sorted Array to Binary Search Tree
    【数据结构】链表
    HTTP 响应状态码介绍
    Sqoop数据导出第2关:HDFS数据导出至Mysql内
    计算古坐标——基于GPlates Web Service的坐标点重建
    并发编程 | JMM、volitle、CAS
    智慧能源解决方案-最新全套文件
    牛客java选择题每日打卡Day2
    新版TCGA表达矩阵1行代码提取2.0版
  • 原文地址:https://blog.csdn.net/Ares5kong/article/details/125407898