邏輯運算子的作用是什麼
今日的內容是“VBA之EXCEL應用”的第六章“條件判斷語句(If。。。Then。。。Else)在VBA中的利用”。這講是第二節“邏輯運算子And、Or、Not”。這套教程從簡單的錄製宏開始講解,一直到窗體的搭建,內容豐富,案例眾多。大家可以非常容易的掌握相關的知識,這套教程面向初學人員,共三冊,十七章,都是我們在利用EXCEL工作過程中需要掌握的知識點,希望大家能掌握利用。
第二節 邏輯運算子And、Or、Not
大家好,我們這講講解邏輯運算。Excel VBA中最常用的三個邏輯運算子是:And, Or和Not。我們將在這講來給大家詳細地講解。
1 邏輯運算子And
對兩個Boolean型表示式執行運算,或對兩個數值表示式執行位運算。
語法:result = expression1 And expression2
引數:
① Result 必需。任何 Boolean 或數值表示式。對於布林值比較,result 是兩個值的邏輯與 Boolean。對於按位運算,result是表示兩個數值按位 “與” 計算的數值。
② expression1 必需。 任何 Boolean 或數值表示式。
③ expression2 必需。 任何 Boolean 或數值表示式。
1)對於布林值比較:
expression1 expression2 result
True True True
True False False
False True False
False False False
2)如果是按位比較:
expression1 expression2 result
1 1 1
1 0 0
0 1 0
0 0 0
2 邏輯運算子Or
對兩個Boolean型表示式執行運算,或對兩個數值表示式執行位運算。
語法:result = expression1 And expression2
引數:
① result 必需。 任何Boolean或數值表示式。對於布林值比較,result 是兩個值的邏輯或Boolean。對於按位運算,result是表示兩個數值按位“或”計算的數值。
② expression1 必需。 任何 Boolean 或數值表示式。
③ expression2 必需。 任何 Boolean 或數值表示式。
1)對於布林值比較:
expression1 expression2 result
True True True
True False True
False True True
False False False
2)對於按位運算, Or 運算子對兩個數值表示式中的相同位置執行按位比較,
expression1 expression2 result
1 1 1
1 0 1
0 1 1
0 0 0
3 Not 運算子
對錶達式執行邏輯非運算,或對數值表示式執行位求反運算。
語法:result = Not expression
引數:
① result 必需。 任何 Boolean或數值表示式。
② expression 必需。 任何 Boolean或數值表示式。
1)對於布林值比較:
expression result
True False
False True
2)對於按位運算,Not運算子反轉任何數值表示式的位值
expression result
1 0
0 1
4 邏輯運算的例項講解
我們看一下下面的程式碼:
Sub mynzB() ‘邏輯運算
Dim myscore1 As Integer, myscore2 As Integer, myresult As String
Range(“C1”)。Value = “”
Range(“D1”)。Value = “”
myscore1 = Range(“A1”)。Value
myscore2 = Range(“A2”)。Value
If myscore1 >= 60 And Not myscore2 = 1 Then
myresult = “透過”
Else
myresult = “失敗”
End If
Range(“A3”)。Value = myresult
If myscore1 >= 60 Or myscore2 > 1 Then
myresult = “透過”
Else
myresult = “失敗”
End If
Range(“B3”)。Value = myresult
End Sub
程式碼截圖:
程式碼講解:
① Range(“C1”)。Value = “”
Range(“D1”)。Value = “”
myscore1 = Range(“A1”)。Value
myscore2 = Range(“A2”)。Value
以上程式碼是清空C1,D1單元格,然後將A1,A2單元格的值放入變數myscore1,myscore2中。
② If myscore1 >= 60 And Not myscore2 = 1 Then
myresult = “透過”
Else
myresult = “失敗”
End If
Range(“A3”)。Value = myresult
上述程式碼是第一種判斷標準。判斷的透過條件是myscore1 >= 60 And Not myscore2 = 1
③ if myscore1 >= 60 Or myscore2 > 1 Then
myresult = “透過”
Else
myresult = “失敗”
End If
Range(“B3”)。Value = myresult
這是第二種判斷方法,透過的條件是:myscore1 >= 60 Or myscore2 > 1
下面我們看程式碼的執行:
在工作表的A1和A2單元格中錄入,70和1,點選執行:
我們分析一下程式碼的執行過程:
第一種判斷方法:
條件:myscore1 >= 60 And Not myscore2 = 1,
這個判斷條件代入數值後是70>=60 and And Not 1=1
那麼就是 True AND False
根據AND的運算規則:結果是FALSE
所以將執行myresult = “失敗”。
第二種判斷方法:
條件:myscore1 >= 60 Or myscore2 > 1,
這個判斷條件代入數值後是70>=60 or 1>1
那麼就是 True or False,
根據or的運算規則:結果是True ,
所以將執行myresult = “透過”。
今日內容迴向:
1
)
邏輯判斷A
ND NOT OR
的意義是什麼?
2
)
邏輯判斷A
ND NOT OR
的運算規則是什麼?
本講內容參考程式檔案:
工作簿0
6
.
xlsm
分享成果,隨喜正能量
VBA的應用及學習方法:
VBA是利用Office實現個人小型辦公自動化的有效手段(工具)。這是我對VBA的應用界定。在取代OFFICE新的辦公軟體沒有到來之前,誰能在資料處理方面做到極致,誰就是王者。其中登峰至極的技能非VBA莫屬!
我記得20年前自己初學VBA時,那時的資料甚少,只能看原始碼自己琢磨,真的很難。20年過去了,為了不讓學習VBA的朋友重複我之前的經歷,我根據自己多年VBA實際利用經驗,推出了七部VBA專門教程。
第一套:VBA程式碼解決方案 是VBA中各個知識點的講解,教程共147講,覆蓋絕大多數的VBA知識點,提供的程式檔案更是一座不可多得的程式碼寶庫,是初學及中級人員必備教程;目前這套教程提供的版本是修訂第二版,程式檔案透過32位和64位兩種OFFICE系統測試。
第二套:VBA資料庫解決方案 資料庫是資料處理的專業利器,教程中詳細介紹了利用ADO連線ACCDB和EXCEL的方法和例項操作,適合中級人員的學習。目前這套教程提供的是修訂第一版教程,程式檔案透過32位和64位兩種OFFICE系統測試。
第三套:VBA陣列與字典解決方案 陣列和字典是VBA的精華,字典是VBA程式碼水平提高的有效手段,值得深入的學習,是初級及中級人員程式碼精進的手段。目前這套教程提供的版本是修訂第一版,程式檔案透過32位和64位兩種OFFICE系統測試。
第四套:VBA程式碼解決方案之影片 是專門面向初學者的影片講解,可以快速入門,更快的掌握這門技能。這套教程是第一套教程(修訂一版)的影片講解,影片更易接受。
第五套:VBA中類的解讀和利用
這
是一部高階教程,講解類的虛無與肉身的度化,類的利用雖然較少,但仔細的學習可以促進自己VBA理論的提高。這套教程的領會主要是讀者的領悟了,領悟一種佛學的哲理。目前這套教程提供的版本是修訂第一版,程式檔案透過32位和64位兩種OFFICE系統測試。
第六套教程:VBA資訊獲取與處理,
這
是一部高階教程,涉及範圍更廣,實用性更強,面向中高階人員。教程共二十個專題,包括:跨應用程式資訊獲得、隨機資訊的利用、電子郵件的傳送、VBA網際網路資料抓取、VBA延時操作,剪下板應用、Split函式擴充套件、工作表資訊與其他應用互動,FSO物件的利用、工作表及資料夾資訊的獲取、圖形資訊的獲取以及定製工作表資訊函式等等內容。程式檔案透過32位和64位兩種OFFICE系統測試。
第七套教程:VBA之EXCEL應用 這是一部初級教程這部教程共三冊,從從建立宏、對話方塊、工作簿和工作表物件、單元格物件等基礎內容講起,到迴圈結構、錯誤處理、字串操作、日期和時間、事件、陣列應用,函式過程等方面,一直講解到控制元件和窗體物件的應用都是我們提高自己EXCEL水平的必須。
以上各教程學習順序:7→1(或者4)→3→2→6→5。其中第四套是對第一套的影片講解,所以第一和第四隻選其一即可。