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


文章目录

  • 一、条件判断
    • 1.1. IF 判断
    • 1.2. Select Case 判断
    • 1.3. IIF 判断
  • 二、循环
    • 2.1. For 循环
      • 2.1.1. 按次数循环
      • 2.1.2. 数组遍历
    • 2.2. Do 循环
      • 2.2.1 Do Loop Until
      • 2.2.2 Do While Loop
    • 2.3 提前中止循环

一、条件判断


1.1. IF 判断


语法

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

If 条件判断 Then
  '条件判断成立时的逻辑   
ElseIf 条件判断 Then
  '条件判断成立时的逻辑
Else
  '条件都不满足时的逻辑 
End If

示例

代码:

'函数内对参数进行条件判断
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

运行效果:
Excel-VBA 快速上手(二、条件判断和循环)_第1张图片

1.2. Select Case 判断


普通语法

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

普通语法示例

代码:

'函数内对参数进行条件判断
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

运行效果:

Excel-VBA 快速上手(二、条件判断和循环)_第2张图片

数值区间语法

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

数值区间语法示例

代码:

'函数内对参数进行条件判断
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

运行效果:
Excel-VBA 快速上手(二、条件判断和循环)_第3张图片

1.3. IIF 判断


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

语法

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

示例

代码:

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

运行效果:

Excel-VBA 快速上手(二、条件判断和循环)_第4张图片

二、循环


2.1. For 循环


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


2.1.1. 按次数循环


语法

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

示例

代码:

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

运行效果:

Excel-VBA 快速上手(二、条件判断和循环)_第5张图片

2.1.2. 数组遍历


语法

For Each 数组元素临时变量 In 数组
  循环体
Next 数组元素临时变量

示例

代码:

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

运行效果:
Excel-VBA 快速上手(二、条件判断和循环)_第6张图片


2.2. Do 循环


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


2.2.1 Do Loop Until


语法

Do
  循环体
Loop Until 中止条件

示例

代码:

Sub main()
  Dim count As Integer
  count = 1
  Do
    count = count + 1
    Debug.Print count
  Loop Until count = 2
End Sub

运行效果:
Excel-VBA 快速上手(二、条件判断和循环)_第7张图片

2.2.2 Do While Loop


语法

Do While 循环条件
  循环体
Loop

示例

代码:

Sub main()
  Dim count As Integer
  count = 1
  Do While count < 10
    Debug.Print count
    count = count + 1
  Loop
End Sub

运行效果:
Excel-VBA 快速上手(二、条件判断和循环)_第8张图片

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

运行效果:
Excel-VBA 快速上手(二、条件判断和循环)_第9张图片

你可能感兴趣的:(VBA-Excel,vba)