首頁 > 易卦

邏輯運算子And、Or、Not

作者:由 VBA語言專家 發表于 易卦日期:2022-10-13

邏輯運算子的作用是什麼

今日的內容是“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

程式碼截圖:

邏輯運算子And、Or、Not

程式碼講解:

① 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,點選執行:

邏輯運算子And、Or、Not

我們分析一下程式碼的執行過程:

第一種判斷方法:

條件: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。其中第四套是對第一套的影片講解,所以第一和第四隻選其一即可。