邏輯運算子用於條件式中。
在條件式與條件式中間進行連接,在滿足條件的情況下,才會執行。
條件式在撰寫時務必完整撰寫,不然可能會發生錯誤喔。
以下就讓我們來試著在VBA中,試著使用邏輯計算子看看吧。
目錄
{tocify} $title={目錄}
關於運算子
在Excel VBA中,如同其他程式語言,也可使用許多的運算子。
VBA可使用的運算子,有算術運算子、關係運算子、字串運算子、邏輯運算子、設定運算子。
設定值 | 內容 |
---|---|
算數運算子 | 主要用於數值的四則運算。 |
關係運算子 | 主要用於兩個值的比較。 |
字串運算子 | 主要使用於字串與字串的連結。 |
邏輯運算子 | 主要使用於兩種以上條件的連結,並用來判斷是否滿足條件式。 |
設定運算子 |
主要使用於將右邊的參照值指定給左邊的變數。 參照值可指定給變數,也可將某個值設定屬性值。 |
算數運算子
用來進行數學運算:
但要注意的是 符號有先後順序,依序為
「 ^ 」 => 「 * 和 / 」 => 「 \ 」 => 「 Mod 」 => 「 + 和 - 」
也可以使用 ( ) 括號來進行調整計算的優先順序。
運算子 | 說明 | 範例(結果) |
---|---|---|
+ | 加法 | 5 + 3 → 8 |
- | 減法 | 5 - 3 → 2 |
* | 乘法 | 5 * 3 → 15 |
/ | 除法 | 5 / 2 → 2.5 |
\ | 取商數 | 5 \ 2 → 2 |
Mod | 取餘數 | 5 Mod 2 → 1 |
^ | 次方, 指數 | 2 ^ 3 → 8 |
這邊要注意的是 Mod 計算的結果,由於 Mod 計算是取結果的餘數,
如果這時候小數的餘數如果有小數部分,會轉換為整數傳回。
範例
Sub test()
Dim num1 As Variant
num1 = 17.6 Mod 4
'17.6 Mod 4 的餘數為 1.6
Dim num2 As Variant
num2 = 17.2 Mod 3
'17.2 Mod 3 的餘數為 2.2
MsgBox "num1的餘數為 : "num2的餘數為 : " & num2
End Sub
執行結果為
關係運算子
使用於兩個值的比較,比較後的結果會傳回 True 或 False:
運算子 | 說明 | 範例(結果) |
---|---|---|
= | 等於 | 5 = 5 → True |
<> | 不等於 | 5 <> 3 → True |
> | 大於 | 5 > 3 → True |
>= | 大於或等於 | 5 >= 5 → True |
< | 小於 | 5 < 3 → False |
<= | 小於或等於 | 3 <= 5 → True |
Is 運算子 | 物件比較 | 相同物件返回True,不同物件返回False |
Like 運算子 | 字串和條件字串的比較 | "Apple" Like "a*" → False ; "Apple" Like "A*" → True |
範例
Sub test()
Dim str1 As Boolean
Dim str2 As Boolean
str1 = "Apple" Like "a*"
str2 = "Apple" Like "A*"
MsgBox "str1比對結果為 : " & str1 & Chr(10) & "str2比對結果為 : " & str2
End Sub
執行結果為
字串運算子
運算子 | 說明 | 範例(結果) |
---|---|---|
& | 字串的連結 | "windows" & "11" → windows11 |
+ | 字串的連結 | "windows" + "11" → windows11 |
邏輯運算子
運算子 | 說明 | 範例(結果) |
---|---|---|
And | 且(都為 True 才 True) | True And False → False |
Or | 或(其中一個為 True 就 True) | True Or False → True |
Not | 否定 | Not True → False |
邏輯運算子主要使用於兩種以上條件的連結,並加以判斷是否滿足條件,滿足條件後才執行程式處理。
主要有三種 And , Or , Not
運算子 | 主要意義 |
---|---|
And |
條件1 和 條件2 皆成立時,為True。 也就是And運算子連接的前後條件皆須成立。 |
Or |
條件1 和 條件2 其中一個成立時,為True。 也就是Or運算子連接的前後條件,有一個條件成立即可。 |
Not | 條件不成立時為True。 |
And運算子
Excel 的And運算子屬於邏輯運算子,用於條件式中。
當使用And運算子的時候,表示連結的條件,都必須成立才符合為True。
關於如如何使用AND運算子可參考以下連結影片
And運算子的使用方式
Point!
條件式1 And 條件式2
範例
' 宣告變數
Dim Math As Integer
Dim Language As Integer
'變數賦值
Math = 60
Language = 50
'判斷式
'使用And運算子連接條件式
'And連結的條件式皆成立, 才會滿足
If Math >= 60 And Language >= 60 Then
MsgBox "All pass"
Else
MsgBox "not pass!!"
End If
執行結果為
關於如如何使用AND運算子可參考以下連結影片
Or運算子
Excel 的Or運算子屬於邏輯運算子,用於條件式中。
當使用Or運算子的時候,其中一個條件成立時,即可為True。
關於如如何使用Or運算子可參考以下連結影片
Or運算子的使用方式
Point!
條件式1 Or 條件式2
範例
' 宣告變數
Dim Math As Integer
Dim Language As Integer
'變數賦值
Math = 60
Language = 50
'判斷式
'使用Or運算子連接條件式
'Or連結的條件式只要其中一個條件成立,就可為True
If Math >= 60 Or Language >= 60 Then
MsgBox "pass"
Else
MsgBox "not pass!!"
End If
執行結果為
關於如如何使用Or運算子可參考以下連結影片
Not運算子
Excel 的Not運算子屬於邏輯運算子,用於條件式中。
當使用Not運算子的時候,當不符合條件式的條件時才成立為True。
Not運算子的使用方式
Point!
Not 條件式
範例
' 宣告變數
Dim Math As Integer
'變數賦值
Math = 60
'判斷式
'使用Not運算子
'Not 條件, 當不符合條件時,為True
'當條件式Math < 60 不成立時,返回True
If Not Math < 60 Then
MsgBox "pass"
Else
MsgBox "not pass!!"
End If
執行結果為
設定運算子
使用於將右邊的參照值指定給左邊的變數。
將參照值指定給變數,或將某值設定給屬性時使用。
運算子 | 說明 | 範例(結果) |
---|---|---|
= | 將右邊的參照值指定給左邊的變數 | str = "office2024" → 將參照值 office2024 指定給變數str |