在 Excel VBA 程式流程控制方法,有循序結構、選擇結構、重複結構三種,而選擇結構有 If Else、Select Case 兩種方法,今天就來學習 If Else這個方法,使用 If 做流程控制可以細分為三種方式,說明如下:
(1) 當執行結果(程式碼區段)只有一個時,條件判斷式為真(True)時,就執行該程式碼區段,語法如下:
If 條件判斷式 Then
程式碼區段
End If
範例:當分數大於等於60時,就顯示合格
Sub CheckScore()
If Range("A1").Value >= 60 Then
Range("B1").Value = "合格"
End If
End Sub
(2) 當執行結果(程式碼區段)有兩個時,就需要用到下面格式,條件判斷式為真(True)時,就執行程式碼區段1,否則就執行程式碼區段2,語法如下:
If 條件判斷式 Then
程式碼區段1
Else
程式碼區段2
End If
範例:當分數大於等於60時,就顯示及格,否則顯示不及格
Sub CheckScore()
If Range("A1").Value >= 60 Then
Range("B1").Value = "及格"
Else
Range("B1").Value = "不及格"
End If
End Sub
(3) 當執行結果(程式碼區段)有三個以上時,就需要用到下面格式,條件判斷式1為真(True)時,就執行程式碼區段1,否則就檢查條件判斷式2,條件判斷式2為真(True)時,就執行程式碼區段2,否則就檢查條件判斷式3,…,一直到最後一個條件判斷式都不成立,就執行程式碼區段N,語法如下:
If 條件判斷式1 Then
程式碼區段1
ElseIf 條件判斷式2 Then
程式碼區段2
…
Else
程式碼區段N
End If
範例:當分數大於等於90時,就顯示A,分數大於等於80時,就顯示B,分數大於等於70時,就顯示C,分數大於等於60時,就顯示D,否則顯示E
Sub CheckScore()
If Range("A2").Value >= 90 Then
Range("B2").Value = "A"
ElseIf Range("A2").Value >= 80 Then
Range("B2").Value = "B"
ElseIf Range("A2").Value >= 70 Then
Range("B2").Value = "C"
ElseIf Range("A2").Value >= 60 Then
Range("B2").Value = "D"
Else
Range("B2").Value = "E"
End If
End Sub