小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Excel VBA解讀(16):VBA的運(yùn)算符

 L羅樂(lè) 2016-10-06

還記得小時(shí)候?qū)W習(xí)數(shù)學(xué)的經(jīng)歷嗎?很小很小的時(shí)候,我們會(huì)接觸到數(shù)字,大人們會(huì)教我們數(shù)數(shù),認(rèn)識(shí)簡(jiǎn)單的數(shù)字,慢慢地我們會(huì)開(kāi)始學(xué)習(xí)簡(jiǎn)單的加減法,再大一點(diǎn),會(huì)學(xué)習(xí)乘除法,背誦乘法口訣,隨著學(xué)習(xí)的深入,我們會(huì)逐漸學(xué)習(xí)到更復(fù)雜的運(yùn)算和規(guī)則。

運(yùn)算無(wú)處不在。在編寫(xiě)程序代碼時(shí),很多內(nèi)容都是在進(jìn)行各種各樣的運(yùn)算,因此,運(yùn)算符非常重要。

當(dāng)然,最開(kāi)始我們都是從了解最基本的運(yùn)算開(kāi)始,逐漸深入到更多的運(yùn)算內(nèi)容。最先應(yīng)該了解的當(dāng)然是加、減、乘、除等算術(shù)運(yùn)算符。

算術(shù)運(yùn)算符

常用的VBA算術(shù)運(yùn)算符有:加( )、減(-)、乘(*)、除(/)、整除(\)、取模(MOD)、求冪(^)。基本的運(yùn)算如下圖1所示。

圖1

說(shuō)明:

  • 對(duì)于除法(/)運(yùn)算符:假設(shè)z=x/y,如果將z聲明為整型數(shù),則結(jié)果為4,即直接舍棄掉小數(shù)位;如果將z聲明為Single型或Double型,則結(jié)果為4.5。

  • 整除(\)運(yùn)算符,即在除法運(yùn)算中,結(jié)果直接取商,而不管余數(shù)。

  • 取模(MOD)運(yùn)算符,即在除法運(yùn)算中,結(jié)果取余數(shù)。

  • 將變量、常量或其他元素使用運(yùn)算符連接起來(lái),就組成了表達(dá)式,特別地,單個(gè)的變量或常量也看作是表達(dá)式。

關(guān)系運(yùn)算符

關(guān)系運(yùn)算符用于比較,也稱(chēng)為比較運(yùn)算符。VBA的關(guān)系運(yùn)算符有:等于(=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、不等于(<>)?;镜谋容^運(yùn)算如下圖2所示。

圖2

在VBA中,關(guān)系運(yùn)算符用于比較運(yùn)算符兩側(cè)的表達(dá)式結(jié)果,比較的結(jié)果為T(mén)rue(真)、False(假)或者Null。因此,關(guān)系運(yùn)算符常用于條件判斷中。

Is運(yùn)算符

在VBA中,經(jīng)常要在對(duì)象變量之間進(jìn)行判斷,例如判斷兩個(gè)對(duì)象變量是否引用同一個(gè)對(duì)象,這時(shí)就要用到Is運(yùn)算符。

  • 對(duì)象變量1 Is對(duì)象變量2

如果對(duì)象變量1對(duì)象變量2都指向同一個(gè)對(duì)象,其結(jié)果是True,否則是False。

  • 對(duì)象變量Is Nothing

用于判斷該對(duì)象變量是否有已設(shè)置對(duì)象引用,如果沒(méi)有則為False。這是程序中經(jīng)常會(huì)用到的語(yǔ)句。

示例:

結(jié)合前面學(xué)習(xí)的系列知識(shí),我們來(lái)看看下面語(yǔ)句的意思。

  • Intersect(ActiveCell, Range('A1:B2')) Is Nothing

該語(yǔ)句判斷當(dāng)前單元格是否在單元格區(qū)域A1:B2內(nèi),如果當(dāng)前單元格不在該區(qū)域內(nèi),則為T(mén)rue。Intersect方法屬于Application對(duì)象,返回一個(gè)Range對(duì)象,代表該方法指定參數(shù)的交叉區(qū)域。

邏輯運(yùn)算符

邏輯運(yùn)算符用于對(duì)表達(dá)式進(jìn)行運(yùn)算并返回一個(gè)邏輯值。VBA支持6個(gè)邏輯運(yùn)算符,即Not(邏輯非)、And(邏輯與)、Or(邏輯或)、Xor(邏輯異或)、Eqv(邏輯與或)、Imp(邏輯蘊(yùn)涵)。其中,Not、And、Or在我們通常的程序中經(jīng)常會(huì)用到,應(yīng)重點(diǎn)了解。

Not

對(duì)表達(dá)式進(jìn)行邏輯非運(yùn)算后,如果表達(dá)式的結(jié)果為T(mén)rue,那么Not運(yùn)算使其值變?yōu)镕alse;如果表達(dá)式的結(jié)果為False,那么Not運(yùn)算使其值變?yōu)門(mén)rue。其格式為:

Not 表達(dá)式

運(yùn)算結(jié)果表如下:

表達(dá)式

Not 表達(dá)式

True

False

False

True

And

如果執(zhí)行邏輯與運(yùn)算的表達(dá)式都為T(mén)rue,則其值為T(mén)rue,只要有一個(gè)表達(dá)式的結(jié)果為False,則其值為False。其格式為:

表達(dá)式1 And 表達(dá)式2 And 表達(dá)式3 And … 表達(dá)式n

表達(dá)式至少有2個(gè)。

運(yùn)算結(jié)果表如下:

表達(dá)式1

表達(dá)式2

表達(dá)式1 And 表達(dá)式2

True

True

True

True

False

False

False

True

False

False

False

False

Or

如果執(zhí)行邏輯或運(yùn)算的表達(dá)式中至少有一個(gè)為T(mén)rue,則其值為T(mén)rue,如果表達(dá)式的結(jié)果都為False,則其值為False。其格式為:

表達(dá)式1 Or 表達(dá)式2 Or 表達(dá)式3 Or … 表達(dá)式n

表達(dá)式至少有2個(gè)。

運(yùn)算結(jié)果表如下:

表達(dá)式1

表達(dá)式2

表達(dá)式1 Or 表達(dá)式2

True

True

True

True

False

True

False

True

True

False

False

False

示例

結(jié)合前面學(xué)習(xí)的系列知識(shí),我們來(lái)看看下面語(yǔ)句的意思。

  • ActiveSheet.Name=”工作表1” Or ActiveSheet.Name=”工作表2”

如果當(dāng)前工作表是“工作表1”,或者是“工作表2”,則為T(mén)rue。

  • ActiveSheet.Name=”工作表1” And Range(“A1”).Value=”工作清單”

如果當(dāng)前工作表是“工作表1”,并且當(dāng)前工作表的單元格A1中的值為“工作清單”,則為T(mén)rue。

  • ActiveCell.Font.Bold = Not ActiveCell.Font.Bold

如果當(dāng)前單元格中的字體為常規(guī),則將其設(shè)置為加粗;如果當(dāng)前單元格中的字體已加粗,則將其設(shè)置為常規(guī)。

補(bǔ)充說(shuō)明:上述6個(gè)邏輯運(yùn)算符也可作為按位運(yùn)算符使用,并且我們只介紹了常用的3個(gè),在后面的系列中如果用到其它的3個(gè)運(yùn)算符,我們會(huì)再進(jìn)行詳細(xì)介紹。

字符串運(yùn)算符

VBA中的字符串運(yùn)算符僅一個(gè),即字符串連接運(yùn)算符,使用 & 表示,用于將一個(gè)或多個(gè)獨(dú)立的字符串連接在一起。例如:

'My ' &'Family'

的結(jié)果為:

My Family

運(yùn)算符的優(yōu)先級(jí)

如果在同一個(gè)表達(dá)式中包含有多個(gè)運(yùn)算符,那么就需要了解VBA是如何安排那個(gè)運(yùn)算符先運(yùn)算,那個(gè)運(yùn)算符后運(yùn)算,即運(yùn)算的優(yōu)先順序。不了解運(yùn)算符的優(yōu)先順序,隨意組合運(yùn)算符,可能得不到我們想要的結(jié)果。

下圖3列出了VBA中運(yùn)算符的優(yōu)先級(jí)。

圖3

說(shuō)明:

  • 四類(lèi)運(yùn)算符由高到低的順序依次為:算術(shù)運(yùn)算符、連接運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符。

  • 算術(shù)運(yùn)算符由高到低的順序依次為:^(冪)、*(乘)或/(除)、\(整除)、Mod(取模)、 (加)或-(減)。

同一表達(dá)式中多次使用同一個(gè)算術(shù)運(yùn)算符時(shí),按從左到右的順序運(yùn)算。

  • 同一表達(dá)式中多個(gè)關(guān)系運(yùn)算符,按從左到右的順序運(yùn)算。

  • 同一表達(dá)式中多次使用同一邏輯運(yùn)算符時(shí),按從左到右的順序運(yùn)算。

  • 如果想改變運(yùn)算符的優(yōu)先順序,可以在表達(dá)式中使用()或[]。

賦值運(yùn)算符

VBA使用等號(hào)(=)作為賦值運(yùn)算符,用于將表達(dá)式的結(jié)果賦給變量。通常,接受結(jié)果的變量位于賦值運(yùn)算符(=)的左側(cè),表達(dá)式位于賦值運(yùn)算符的右側(cè)。通過(guò)賦值運(yùn)算符將右側(cè)表達(dá)式的結(jié)果賦值給左側(cè)的變量。賦值運(yùn)算符可以修改變量的值。

下圖4所示為一些簡(jiǎn)單的賦值示例。

圖4

前面我們講過(guò),可以通過(guò)VBA來(lái)改變對(duì)象屬性值,因此,也可以將表達(dá)式的結(jié)果賦值給對(duì)象的屬性。下面是一些示例:

  • Range('A1').Value = 100

該語(yǔ)句在單元格A1中輸入數(shù)據(jù)100。

  • Range('A2').Value = '工作清單'

該語(yǔ)句在單元格A2中輸入文本“工作清單”。

  • ActiveCell.Interior.Color = vbYellow

該語(yǔ)句將當(dāng)前單元格的背景色設(shè)置為黃色。

注意:不要將賦值運(yùn)算符與關(guān)系運(yùn)算符中的“=”混淆,要在不同的表達(dá)式中區(qū)分“=”是賦值運(yùn)算符還是等于運(yùn)算符。

-------------------------------------- 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多