在日常生活中,也有簡單的例子可以想想。
如果我有100元,我就買大乖乖 在這個例子中,
要執行的條件就是 我要有100元才買大乖乖
但要視我有沒有100元的條件有沒又成立,才執行。
以下就讓我們來試著在VBA中,使用if來進行條件判斷吧。
目錄
{tocify} $title={目錄}
If陳述式可以寫成單行或者多行的格式,可以依照自己的需求調整。
但有時為了可讀性,也會寫成多行,以增加程式碼的可讀性。
If 判斷式寫成單行的方式
Point!
If 條件式 Then 滿足條件時進行處理
在這邊 如果寫成1行,則結尾可不加上 End If
範例
' 宣告變數num為整數
Dim num As Integer
' 設定num為15
num = 15
' if條件式, 若num>10 , 則顯示文字大於10的訊息窗
If num > 10 Then MsgBox "大於10"
範例
' 宣告變數num為整數
Dim num As Integer
' 設定num為15
num = 15
' if條件式, 若num>10 , 連續執行ABC處理
If num > 10 Then MsgBox "處理A": MsgBox "處理B": MsgBox "處理C"
If判斷式寫成多行的方式
Point!
If 條件式 Then
滿足條件時進行處理
End if
但是寫成多行時,務必在要加上End If ,不然會發生錯誤。
這個部分是在新手的時候容易發生的錯誤,要記得多加注意。
範例
' 宣告變數num為整數
Dim num As Integer
' 設定num為15
num = 15
' if條件式, 若num>10 , 則顯示文字大於10的訊息窗
If num > 10 Then
MsgBox "大於10"
End If
關於if條件判斷可參考以下連結影片
單一條件式分歧
如果條件為True,那麼就進行True 的處理。 反之 就進行False的處理。
那麼當我們想要進行這樣的判斷該怎麼做呢?
這個時候在Excel VBA中,可以加入 Else 來進行多條件式分歧的判斷喔。
在日常生活中,也有簡單的例子可以想想。
如果我有100元,我就買大乖乖,沒有的話,就哭著找爸爸幫我買 ^O^ 在這個例子中,
True的條件就是 我有100元 - 買大乖乖
False 就是我沒有100元的情況 - 找爸爸幫我買
以下就讓我們來試著在VBA中,使用if來進行條件判斷吧。
程式撰寫重點
與 If條件判斷(1) 相同的是 需要在結尾加上End If 表示結束。
唯一不同的是,這次我們會在條件式中加入分歧,
中間需要加上Else 來區隔
滿足條件及無法滿足條件式的處理。
Point!
If 條件式 Then
滿足條件時進行處理
Else
無法滿足條件式的處理
End If
範例
' 宣告變數score為整數
Dim score As Integer
' 設定score為80
score = 80
' if條件式, 若score>=60 , 則顯示及格, 反之則顯示不及格
If score >= 60 Then
MsgBox "及格"
Else
MsgBox "不及格"
End If
關於if條件判斷可參考以下連結影片
多條件式分歧
如果條件為True,那麼就進行True 的處理。
反之 就進行False的處理。
但如果我們需要判斷的情況變多時,單一條件式分歧的方式顯然是不夠用。
這個時候在Excel VBA中,可以加入 Else If 來進行多條件式分歧的判斷喔。
以下就讓我們來試著在VBA中,使用if來進行條件判斷吧。
程式撰寫重點
與 If條件判斷(1) 相同的是 需要在結尾加上End If 表示結束。
這次我們會在條件式中加入多個條件分歧,
在結束之前除了需要加上Else 來區隔外,
在中間會加上Else If 來做多條件式分歧的處理。
Point!
If 條件式1 Then
滿足條件1時的處理
Else If 條件式2 Then
滿足條件2時的處理
Else If 條件式3 Then
滿足條件3時的處理
... 以此類推
Else
無法滿足條件式的處理
End If
範例
' 宣告變數score為整數
Dim score As Integer
' 設定score為58
score = 58
' 多條件式分歧處理
If score >= 90 Then
MsgBox "優"
Else If score >= 80 Then
MsgBox "甲"
Else If score >= 70 Then
MsgBox "乙"
Else If score >= 60 Then
MsgBox "丙"
Else
MsgBox "丁"
End If
關於if條件判斷可參考以下連結影片
多條件式分歧須留意部分
使用if多條件分歧判斷時,需要注意的是,
在寫if判斷時,要注意完成條件式的先後順序。
範例
' 宣告變數score為整數
Dim score As Integer
' 設定score為90
score = 90
' 多條件式分歧處理
If score >= 60 Then
MsgBox "丙"
Else If score >= 70 Then
MsgBox "乙"
Else If score >= 80 Then
MsgBox "甲"
Else If score >= 90 Then
MsgBox "優"
Else
MsgBox "丁"
End If
則此時因為score為90,所以會滿足條件式1
接著if判斷就會跳出"丙"之後,結束判斷,之後的程式碼不會執行。
以上僅供範例說明,實際上撰寫時,這種撰寫方式容易發生錯誤,必須要多加注意。
接著if判斷就會跳出"丙"之後,結束判斷,之後的程式碼不會執行。
以上僅供範例說明,實際上撰寫時,這種撰寫方式容易發生錯誤,必須要多加注意。
關於if條件判斷注意部分可參考以下連結影片