VBA学习基础之条件语句
1.4.1 If … Then …
一个if语句由一个布尔表达式和一个或多个语句组成。如果条件被评估为True,则执行If条件块下的语句。如果条件被评估为False,则执行If循环块后面的语句。
If(boolean_expression) Then
Statement 1
.....
.....
Statement n
End If
Private Sub if_demo_Click()
Dim x As Integer
Dim y As Integer
x = 234
y = 32
If x > y Then
MsgBox ("X 的值大于 Y 的值")
End If
End Sub
1.4.2 If … Else …
一个if语句由一个布尔表达式和一个或多个语句组成。如果条件评估为True,则执行if条件下的语句。如果条件评估为False,则执行else部分块下的语句。
If(boolean_expression) Then
Statement 1
.....
.....
Statement n
Else
Statement 1
.....
....
Statement n
End If
Private Sub if_demo_Click()
Dim x As Integer
Dim y As Integer
x = 10
y = 20
If x > y Then
MsgBox ("X 的值大于 Y 的值")
Else
MsgBox ("Y 的值大于 X 的值")
End If
End Sub
1.4.3 If … Elseif … Else …
一个If语句,后面可以跟一个或多个由布尔表达式组成的elseif语句,然后是一个默认的else语句,当所有条件变为false时执行else语句块。
If(boolean_expression) Then
Statement 1
.....
.....
Statement n
ElseIf (boolean_expression) Then
Statement 1
.....
....
Statement n
ElseIf (boolean_expression) Then
Statement 1
.....
....
Statement n
Else
Statement 1
.....
....
Statement n
End If
Private Sub if_demo_Click()
Dim x As Integer
Dim y As Integer
x = 10
y = 10
If x > y Then
MsgBox ("X 大于 Y 的值")
ElseIf y > x Then
MsgBox ("Y 大于 X 的值")
Else
MsgBox ("X 和 Y 的值相等")
End If
End Sub
1.4.4 If 嵌套
Private Sub nested_if_demo_Click()
Dim a As Integer
a = 12
If a > 0 Then
MsgBox ("The Number is a POSITIVE Number")
If a = 1 Then
MsgBox ("The Number is Neither Prime NOR Composite")
ElseIf a = 2 Then
MsgBox ("The Number is the Only Even Prime Number")
ElseIf a = 3 Then
MsgBox ("The Number is the Least Odd Prime Number")
Else
MsgBox ("The Number is NOT 0,1,2 or 3")
End If
ElseIf a < 0 Then
MsgBox ("The Number is a NEGATIVE Number")
Else
MsgBox ("The Number is ZERO")
End If
End Sub
1.4.5 Switch
当用户想要根据Expression的值执行一组语句时,使用Switch Case语句。 每个值被称为一个”情况”,并根据每种情况变量接通测试。如果测试表达式与用户指定的任何Case不匹配,则执行Case Else语句。
Case Else是Select Case中的一个可选语句,但是,总是使用一个Case Else语句是一个很好的编程习惯。
Select Case expression
Case expressionlist1
statement1
statement2
....
....
statement1n
Case expressionlist2
statement1
statement2
....
....
Case expressionlistn
statement1
statement2
....
....
Case Else
elsestatement1
elsestatement2
....
....
End Select
Private Sub switch_demo_Click()
Dim MyVar As Integer
MyVar = 1
Select Case MyVar
Case 1
MsgBox "The Number is the Least Composite Number"
Case 2
MsgBox "The Number is the only Even Prime Number"
Case 3
MsgBox "The Number is the Least Odd Prime Number"
Case Else
MsgBox "Unknown Number"
End Select
End Sub