2018年12月3日 星期一

[Excel VBA 學習筆記] 如何使用 If Else 控制程式流程,使用方法及範例

在 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