一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

excel編程系列基礎(chǔ):典型的判斷語(yǔ)句應(yīng)用技巧

 部落窩教育BLW 2020-05-28

編按:哈嘍,大家好!今天是第四篇VBA實(shí)戰(zhàn)入門教程,我們將給大家?guī)?lái)VBA中最常見語(yǔ)句之一,判斷語(yǔ)句。典型的判斷語(yǔ)句有2種,分別是IF判斷語(yǔ)句和SELECT判斷語(yǔ)句。學(xué)習(xí)更多技巧,請(qǐng)收藏關(guān)注部落窩教育excel圖文教程。


【前言】

上一篇的循環(huán)語(yǔ)句同學(xué)們都學(xué)會(huì)了嗎?如果沒有學(xué)會(huì),那就需要再給自己一些壓力,因?yàn)橛锌赡苣阌忠淮屋斀o了其他人。人生就是這樣,短短幾十年,恍惚即過,你可以一直以“沒時(shí)間”、“記不住”為借口哄騙自己,也可以“對(duì)自己狠一些”,反正最后的結(jié)果無(wú)論好與壞,都需要自己面對(duì)。

無(wú)論你有沒有學(xué)會(huì),下面又有一個(gè)重要的EXCEL VBA語(yǔ)句即將登場(chǎng),為什么來(lái)的如此之快,因?yàn)樗恰把h(huán)語(yǔ)句”的CP——“判斷語(yǔ)句”,工作實(shí)戰(zhàn)中有了“循環(huán)”必見“判斷”!


【正文】

在日常工作中,我們往往需要在眾多的“對(duì)象集”中遍歷每一個(gè)對(duì)象,從而達(dá)到處理數(shù)據(jù)的結(jié)果,無(wú)論是EXCEL、ACCESS、ERP都是如此,即便像高級(jí)語(yǔ)言PYTHONJAVA也同樣會(huì)有循環(huán)語(yǔ)句結(jié)構(gòu),這就是關(guān)系型數(shù)據(jù)的處理特點(diǎn)。但是我們?cè)谘h(huán)的過程中,因?yàn)楦鞣N需求的不同,所以不是所有的數(shù)據(jù)內(nèi)容都是我們需要的。 

那就要對(duì)每一行數(shù)據(jù)條進(jìn)行甄別,讓計(jì)算機(jī)代替我們判斷,是需要的則處理,不需要的就PASS。

一、IF判斷語(yǔ)句

其實(shí)大家對(duì)判斷語(yǔ)句應(yīng)該并不陌生,因?yàn)楣ぷ鞅砗瘮?shù)中就有IF判斷函數(shù),如此的經(jīng)典,VBA又豈能放過。

1.用一個(gè)小案例認(rèn)識(shí)IF判斷語(yǔ)句

示例1)需求,判斷身份證號(hào)的位數(shù)是否正確。

如果看到這樣的一組號(hào)碼,不考慮號(hào)碼的信息正誤,只看位數(shù),你很難知道它是否是18位,那么此時(shí)用代碼來(lái)處理,就顯得很方便了,如下:

Sub 判斷身份證號(hào)位數(shù)正誤()

  With Sheets("IF判斷語(yǔ)句")

    For i = 2 To 10

      If Len(.Cells(i, 1)) = 18 Then

        .Cells(i, 2) = "18位"

      End If

    Next i

  End With

End Sub

【代碼解析】

Line1使用工作表“IF判斷語(yǔ)句”作為代碼中引用對(duì)象的統(tǒng)一父級(jí)對(duì)象;

Line2:規(guī)定循環(huán)變量i的范圍為210,因?yàn)槲覀兪潜闅v單元格,逐行判斷,所以循環(huán)變量應(yīng)該以單元格的行號(hào)作為循環(huán)依據(jù),所以是ROW2ROW10;

Line3:Cells(i, 1)說明是某一行和第一列的交點(diǎn)單元格,當(dāng)i變量為2,3,4,10時(shí),對(duì)應(yīng)的單元格地址就是A2,A3,A4,,A10。用LEN函數(shù)提取單元格字符串的長(zhǎng)度,判斷是否等于18

Line4:如果判斷條件滿足,則Cells(i, 2)對(duì)應(yīng)的B列單元格中輸入“18位”;

Line5:判斷語(yǔ)句的結(jié)束語(yǔ)句;

Line6:循環(huán)語(yǔ)句的結(jié)束語(yǔ)句;

Line7:With語(yǔ)句的結(jié)束語(yǔ)句。

2.IF判斷語(yǔ)句的語(yǔ)法

從上面的示例1我們可以看出,當(dāng)判斷條件滿足時(shí),返回對(duì)應(yīng)的結(jié)果,但卻留下了很多空單元格。下面我們就正式的了解一下IF判斷函數(shù)的語(yǔ)法,如下:

這就是IF判斷語(yǔ)句的完整語(yǔ)法,和IF函數(shù)一樣,當(dāng)滿足某一級(jí)判斷時(shí),返回相應(yīng)結(jié)果,并跳出此次判斷。這其中的ElseIF語(yǔ)句,就相當(dāng)于IF函數(shù)的嵌套使用,Else就相當(dāng)于IF函數(shù)的False_value

3.通過案例學(xué)會(huì)IF判斷語(yǔ)句

處于實(shí)戰(zhàn)的考慮,我們繼續(xù)看兩個(gè)案例,幫助大家能夠更好地了解IF判斷語(yǔ)句的用法,如下:

示例2)需求,判斷A列數(shù)值的奇偶性。代碼如下:

Sub 奇偶性()

  With Sheets("奇偶性")

    a = .[A1].End(4).Row

    For i = 2 To a

      If .Cells(i, 1) Mod 2 = 0 Then

        .Cells(i, 2) = "偶"

      Else

        .Cells(i, 2) = "奇"

      End If

    Next i

  End With

End Sub

【代碼解析】

Line1:使用工作表“奇偶性”作為代碼中引用對(duì)象的統(tǒng)一父級(jí)對(duì)象;

Line2:使用單元格End屬性和Row屬性,找到數(shù)據(jù)范圍末行的行號(hào),并賦值給變量a

Line3:規(guī)定循環(huán)變量i的循環(huán)范圍是2a,循環(huán)每一行數(shù)據(jù)(不含表頭);

Line4:判斷單元格Cellsi,1)第一列每一個(gè)單元格,除以2求余(Mod函數(shù))是否等于0;

Line5:如果等于0,則對(duì)應(yīng)的Cellsi2)單元格,賦值“偶”;

Line6:Else,不滿足上面條件的情況時(shí);

Line7:則對(duì)應(yīng)的Cellsi,2)單元格,賦值“奇”;

Line8:判斷語(yǔ)句的結(jié)束語(yǔ)句;

Line9:循環(huán)語(yǔ)句的結(jié)束語(yǔ)句;

Line10:With語(yǔ)句的結(jié)束語(yǔ)句。

小知識(shí)

Mod函數(shù),在工作表函數(shù)中也有它的身影,但是在EXCEL VBA中它的語(yǔ)法有些不同,教同學(xué)們一個(gè)記住它的方法:在VBA中你可以把它理解為一個(gè)“運(yùn)算符號(hào)”,例如4/56*8、21-6這樣的算式,求余就是235 Mod 62,表示235除以62的余數(shù)。

示例3)需求,按照制度,制作每個(gè)人的提成。

不要覺得我們一直在講基礎(chǔ),對(duì)于VBA來(lái)說,沒有絕對(duì)的基礎(chǔ),漏掉哪一個(gè)環(huán)節(jié)都有可能讓你使用VBA的過程不順暢。我們現(xiàn)在就利用判斷語(yǔ)句,解決一個(gè)同學(xué)們工作中的實(shí)際問題。學(xué)習(xí)更多技巧,請(qǐng)收藏關(guān)注部落窩教育excel圖文教程。

數(shù)據(jù)源就不用多說了,作者E圖表述在以往的文章中說過很多了,包括區(qū)間的寫法。下面直入正題,代碼如下:

Sub 提成計(jì)算()

  With Sheets("計(jì)算提成")

    a = .Range("A1").End(4).Row

    For i = 2 To a

      If .Cells(i, 3) < 100 Then

        .Cells(i, 4) = "銷售額*85%*1%"

        .Cells(i, 5) = .Cells(i, 3) * 0.85 * 0.01

      ElseIf .Cells(i, 3) >= 100 And .Cells(i, 3) < 200 Then

        .Cells(i, 4) = "銷售額*85%*2%"

        .Cells(i, 5) = .Cells(i, 3) * 0.85 * 0.02

      ElseIf .Cells(i, 3) >= 200 And .Cells(i, 3) < 500 Then

        .Cells(i, 4) = "銷售額*85%*3%"

        .Cells(i, 5) = .Cells(i, 3) * 0.85 * 0.03

      Else

        .Cells(i, 4) = "銷售額*80%*8%"

        .Cells(i, 5) = .Cells(i, 3) * 0.8 * 0.08

      End If

    Next i

  End With

End Sub

這算是IF判斷語(yǔ)句最全的寫法了,基本涵蓋了所有和判斷語(yǔ)句有關(guān)的內(nèi)容。介于篇幅,也考慮到同學(xué)們需要有思考的空間,上面這段代碼,就不給出代碼解析的過程,正題思路就是一個(gè)IFIFIF))的嵌套使用。

小知識(shí)

如果有兩個(gè)條件都需要滿足,我們可以使用AND,依然和IF工作表函數(shù)一樣的用法,但是不一樣的是語(yǔ)法為“條件1 AND 條件2 AND 條件N”;如果是多條件取其一,就用OR,“條件1 OR 條件2 OR 條件N”;如果是更加復(fù)雜的情況,如:(條件1 AND 條件2) OR 條件3,意思就是條件1和條件2都滿足,或者只有條件3獨(dú)立滿足。這個(gè)邏輯過程,可以舉一反三。

二、SELECT判斷語(yǔ)句

因?yàn)?span style="margin-top: 0px;margin-bottom: 0px;padding: 0px;">IF函數(shù)已深入人心,所以我們開篇就講解了IF判斷語(yǔ)句,其實(shí)在EXCEL VBA中還有另一種判斷語(yǔ)句的寫法,就是SELECT判斷語(yǔ)句,語(yǔ)法如下:

我們看一個(gè)案例說明問題,考勤統(tǒng)計(jì):

不考慮曠工和漏打卡的情況,這個(gè)案例單純的就為了說明SELECT判斷語(yǔ)句的用法,代碼如下:

Sub 遲到早退()

  With Sheets("考勤")

    a = .[C1].End(4).Row

    i = 2

    Do While i <= a

      Select Case .Cells(i, 4)

        Case Is <= TimeSerial(8, 0, 0)

          .Cells(i, 5) = "上午正常"

        Case Is <= TimeSerial(12, 0, 0)

          .Cells(i, 5) = "上午遲到"

        Case Is < TimeSerial(17, 0, 0)

          .Cells(i, 5) = "下午早退"

        Case Else

          .Cells(i, 5) = "下午正常"

      End Select

      i = i + 1

    Loop

  End With

End Sub

【代碼解析】

Line1引用“考勤”工作表為整體父級(jí)對(duì)象;

Line2確定末行的行號(hào),并賦值給a變量;

Line3確定Do While的循環(huán)變量i的初始值為2(從工作表的第2行開始);

Line4給定循環(huán)的條件,不能超過最大數(shù)據(jù)范圍a;

Line5確定Select Case的判斷條件是.Cellsi,4)單元格的時(shí)間內(nèi)容;

Line6逐條判斷Case Is給定的條件,滿足則執(zhí)行相關(guān)語(yǔ)句命令行,并跳轉(zhuǎn)到End Select;如果不滿足,則執(zhí)行下一個(gè)Case Is條件;

……;

Line15循環(huán)變量加1(進(jìn)行下一次循環(huán));

Line16循環(huán)語(yǔ)句的結(jié)束語(yǔ)句;

Line17With語(yǔ)句的結(jié)束語(yǔ)句。

整體的思路和IF判斷語(yǔ)句是一樣的,作者E圖表述,還是希望大家多看看IF判斷,畢竟寫法上和我們?nèi)粘@斫獾?span style="margin-top: 0px;margin-bottom: 0px;padding: 0px;">IF很像,寫代碼時(shí)的思路更好梳理。


【編后語(yǔ)】

判斷語(yǔ)句就先講到這里了,當(dāng)然有的同學(xué)會(huì)說,判斷里面還有一種IIF的寫法,基本和工作表函數(shù)的IF函數(shù)一致,但是不適合寫比較復(fù)雜的條件過程,所以此處略過,只是上面的內(nèi)容,就足夠大家日常使用了。學(xué)習(xí)更多技巧,請(qǐng)收藏關(guān)注部落窩教育excel圖文教程。

****部落窩教育-excel判斷語(yǔ)句應(yīng)用基礎(chǔ)****

原創(chuàng):E圖表述/部落窩教育(未經(jīng)同意,請(qǐng)勿轉(zhuǎn)載)

更多教程:部落窩教育

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

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

    類似文章 更多

    大屁股肥臀熟女一区二区视频| 免费高清欧美一区二区视频| 久久碰国产一区二区三区| 伊人久久青草地综合婷婷| 欧美大胆女人的大胆人体| 成年女人午夜在线视频| 91插插插外国一区二区| 国产精品不卡免费视频| 99国产成人免费一区二区| 激情综合网俺也狠狠地| 欧美日韩精品综合在线| 中文字日产幕码三区国产| 亚洲午夜av一区二区| 亚洲av首页免费在线观看| 成人欧美一区二区三区视频| 激情内射日本一区二区三区| 日韩国产欧美中文字幕| 久久精品少妇内射毛片| 免费观看一级欧美大片| 国产高清三级视频在线观看| 好吊色欧美一区二区三区顽频| 国产欧美日韩精品成人专区| 国产欧美日韩精品自拍| 欧美精品亚洲精品一区| 亚洲中文字幕三区四区| 国产原创激情一区二区三区| 五月婷婷缴情七月丁香| 欧美亚洲国产日韩一区二区| 国产一级性生活录像片| 欧美黑人精品一区二区在线| 欧美多人疯狂性战派对| 午夜资源在线观看免费高清| 中文字幕日韩精品人一妻| 视频在线播放你懂的一区| 国产美女精品人人做人人爽| 国产又猛又大又长又粗| 高潮日韩福利在线观看| 色哟哟在线免费一区二区三区| 国产精品免费自拍视频| 久热99中文字幕视频在线 | 97人妻精品免费一区二区|