语法
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
运行效果:

普通语法
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
运行效果:

数值区间语法
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
运行效果:

IIF判断与其他编程语言中的三目运算差不多,适用于按条件赋值的场景
语法
IIf(条件判断, 满足条件时的返回值, 不满足条件时的返回值)
示例
代码:
'函数内对参数进行条件判断
Function judge(num)
Debug.Print IIf(num Mod 2 = 0, "参数是偶数", "参数是奇数")
End Function
运行效果:

For 循环可以按照次数进行循环,也可以对数组内容进行遍历
语法
For 变量名 = 起始数值 To 终点数值 Step 步长
循环体
Next 变量名
示例
代码:
Sub main()
For num = 1 To 20 Step 2
Debug.Print num
Next num
End Sub
运行效果:

语法
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
运行效果:

Do Loop Until 是满足条件后中止循环,Do While Loop 是满足条件后开始循环,Do Loop Until 不管条件是否满足,
都会先执行一次循环体内容,也就是说 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
运行效果:

语法
Do While 循环条件
循环体
Loop
示例
代码:
Sub main()
Dim count As Integer
count = 1
Do While count < 10
Debug.Print count
count = count + 1
Loop
End Sub
运行效果:

可以使用 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
运行效果:
