excel的宏与VBA入门(三)——流程控制
一、条件控制IF
if 逻辑表达式 then
语句块
end if
带else的if语句:
If 逻辑表达式1 Then
语句块1
ElseIf 逻辑表达式2 Then
语句块2
ElseIf 逻辑表达式3 Then
语句块3
…
Else
语句块n
End If
二、条件判断Select/Case
Select Case 测试表达式
Case 条件表达式1
语句块1
Case 条件表达式2
语句块2
Case 条件表达式3
语句块3
......
Case 条件表达式n
语句块n
Case Else
语句块Else
End Select.
示例:
Sub test()
If [a1].Value = "" Then
MsgBox "A1单元格没有输入数字。"
Exit Sub ' 退出程序
End If
Select Case [a1].Value
Case 0 To 29
MsgBox "差"
Case 30 To 59
MsgBox "不及格"
Case 60 To 79
MsgBox "及格"
Case 80 To 89
MsgBox "良好"
Case Else
MsgBox "优秀"
End Select
End Sub
三、循环控制For/Next
For 循环变量=初值 to 终值 step 步长
循环体1
[exit for]
循环体2
next 循环变量
示例:(步长默认为1,next后的循环变量可以省略 )
Sub mysum()
Dim Lsum As Long, i As Long
For i = 1 To 1000
Lsum = Lsum + i
Next
MsgBox "1到1000的自然数和为:" & Lsum
End Sub
//更多实例,参考开篇链接
四、循环控制For/Each
For Eacn 元素变量 In 对象集合或数组名称
语句块1
[Exit For]
语句块2
next 元素变量
//与上一个循环类似,这里采用元素变量从对象集合中取得方式
五、循环控制Do/While
Do Wihle 循环条件
语句块1
[Exit Do]
语句块2
Loop
Do
语句块1
[Exit Do]
语句块2
Loop Wihle 循环条件
//示例暂略
六、循环控制Do/Until
Do Until 循环条件
语句块1
[Exit Do]
语句块2
Loop
Do
语句块1
[Exit Do]
语句块2
Loop Until 循环条件
//与Do/While相反的是为真时退出
七、循环控制GoTo
Sub mysum()
Dim Lsum As Long, i As Long
i = 1
x: '为go to 语句设置的标签,必须以英文状态下的冒号结尾
Lsum = Lsum + i
i = i + 1
If i <= 1000 Then GoTo x '如果i<=1000,则程序跳到标签X处
MsgBox "1到1000的自然数和为:" & Lsum
End Sub