別怕,VBA入門級(jí)教程來了,條件語句很簡(jiǎn)單!
?
作者:賦春風(fēng)來源:部落窩教育發(fā)布時(shí)間:2022-02-21 16:27:21點(diǎn)擊:2516
編按:
關(guān)于宏,條件語句是最常用的語句之一,條件語句是根據(jù)判斷結(jié)果執(zhí)行不同的過程,也就是“如果是……就進(jìn)行……”。只有掌握了宏程序的條件語句,才能應(yīng)用起來得心應(yīng)手。這篇文章的目的,是介紹條件語句,其實(shí)條件語句只有兩種:“IF…Then…Else”語句,“Slecct…Case”語句。
一、IF…Then…Else語句
1、語句介紹
到目前為止所學(xué)習(xí)過的宏都是從“Sub…”的下一行開始順序執(zhí)行,并以“End Sub…”作為結(jié)束的單向處理。對(duì)此,如果能根據(jù)不同的條件來改變流程,宏的可應(yīng)用的范圍就會(huì)大大擴(kuò)展。在此就來學(xué)學(xué)“If…Then…Else”語句吧。該語句的語法結(jié)構(gòu)是:
If 條件表達(dá)式 Then
條件滿足時(shí)所執(zhí)行的處理
Else
條件不滿足時(shí)所執(zhí)行的處理
End If
語法中,在If后放入條件,如果條件滿足就執(zhí)行Then后面的部分,如果不滿足就執(zhí)行Else后面的部分。其中,“Else 條件不滿足時(shí)所執(zhí)行的處理”的部分如果沒有必要可將其省略,此時(shí),只有在條件滿足時(shí)進(jìn)行的處理,條件不滿足則不進(jìn)行處理。
2、舉個(gè)例子
例1:下面的工作表,輸入的數(shù)據(jù)行與未輸入的數(shù)據(jù)行混在一起,要求在未輸入的行前(A列)輸入“無任何值”并填充黃色,而已輸入數(shù)據(jù)行保持原樣。
程序代碼:
Sub 只輸入在空白單元格中()
For y = 2 To 14
If Cells(y, 1).Value = "" Then
Cells(y, 1).Value = "無任何值"
Cells(y, 1).Interior.ColorIndex = 6
End If
Next
End Sub
程序分析:首先,Cells可以表示單元格,Cell表示方法為Cells(行號(hào),列標(biāo)),“行號(hào)”參數(shù)表示縱向的位置,“列標(biāo)”參數(shù)表示橫向的位置,例如,Cells(1,2)的行號(hào)為1,列標(biāo)為2,因此表示B1單元格。然后用“For…Next”循環(huán)語句從第二行到第14行檢查Cells(y,1)的值,如果該值為"",然后就執(zhí)行”Cells(y, 1).Value = "無任何值"”,也就是輸入“無任何值”,再執(zhí)行“Cells(y, 1).Interior.ColorIndex = 6”,也就是將單元格填充黃色。當(dāng)單元格有數(shù)據(jù)時(shí),也就是非“Cells(y, 1).Value = ""”時(shí),不做處理,換句話不設(shè)置“Else”語句。
例2:對(duì)于第一行的第1-10列兩個(gè)單元格做判斷,如果單元格值為空,則在相應(yīng)的第二列單元格輸出“無數(shù)據(jù)”,否則輸出“有數(shù)據(jù)”。
程序代碼:
Sub 判斷語句()
Dim i As Integer
For i = 1 To 10
If Cells(1, i) = "" Then
Cells(2, i) = "無數(shù)據(jù)"
Else
Cells(2, i) = "有數(shù)據(jù)"
End If
Next
End Sub
二、Select…Case語句
1、概念介紹
在武俠世界中,有北喬峰和南慕容勢(shì)均力敵、旗鼓相當(dāng)。在VBA世界里,也有與“IF…Then…Else”齊名的條件語句“Select… Case”語句。假如遇到這樣的條件:“如果是1就進(jìn)行A,如果是2就進(jìn)行B,如果是3就進(jìn)行C……”,也就是處理好多情況的時(shí)候,應(yīng)用“Select…Case”語句就能編出簡(jiǎn)明、易懂的宏語言。當(dāng)然了,應(yīng)用“IF…Then…Else”語句也能做到,但處理多個(gè)條件,“Select…Case語句”更加方便。該語句的語法結(jié)構(gòu)是:
Select Case 表達(dá)式
Case 條件1
處理1
Case 條件2
處理2
……
Case Else
其他處理
End Select
語法中,在Select Case后面放置表達(dá)式部分,并按此表達(dá)式進(jìn)行分別處理。如果與所有條件都不符合,就會(huì)執(zhí)行Case Else中的處理,而且,Case的分支無數(shù)量限制。
2、舉個(gè)例子
例1: “A1:A10單元格”區(qū)域的值如果為70以上就填充藍(lán)色,如果為50以上就填充黃色,其他的都填充紅色。
程序代碼:
Sub 按數(shù)字大小填充紅黃藍(lán)色()
For y = 1 To 10
Select Case Cells(y, 1).Value
Case Is >= 70
Cells(y, 1).Interior.ColorIndex = 5
Case Is >= 50
Cells(y, 1).Interior.ColorIndex = 6
Case Else
Cells(y, 1).Interior.ColorIndex = 3
End Select
Next
End Sub
程序分析:首先使用Cells表示單元格,然后用“For…Next”循環(huán)語句從第以行到第10行檢查Cells(y,1)的值,如果該值為70以上(這種類型的比較要使用Is來寫成“Is>=70” ),就執(zhí)行語句“Cells(y, 1).Interior.ColorIndex = 5”,就行填充藍(lán)色,同理,如果為50以上就填充黃色,至于其他的,就執(zhí)行“Cells(y, 1).Interior.ColorIndex = 3”,就填充紅色。
例2:2022年春夏秋冬分別為春季為3、4、5月份,夏季為6、7、8月份,秋季為9、10、11月份,冬季為12、1、2月份,我們可以通過不同月份判定當(dāng)前是屬于哪個(gè)季節(jié)。
程序代碼:
Sub 判斷季節(jié)()
Select Case Month(Now())
Case Is < 3
MsgBox ("隆冬到來時(shí),百花亦已絕")
Case Is < 6
MsgBox ("春眠不覺曉,處處聞啼鳥")
Case Is < 9
MsgBox ("水積春塘晚,陰交夏木繁")
Case Is < 12
MsgBox ("自古逢秋悲寂寥,我言秋日勝春朝")
Case Else
MsgBox ("隆冬到來時(shí),百花亦已絕")
End Select
End Sub
程序分析:首先用NOW()函數(shù)獲取當(dāng)前的時(shí)間節(jié)點(diǎn),接著用Month()函數(shù)獲取月份,然后用Select Case語句判斷不同的月份,最后用MsgBox彈出一個(gè)對(duì)話框,對(duì)話框內(nèi)是代表當(dāng)前季節(jié)的古詩(shī)。
本文配套的練習(xí)課件請(qǐng)加入QQ群:902294808下載。
做Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!
掃下方二維碼關(guān)注公眾號(hào),可隨時(shí)隨地學(xué)習(xí)Excel:
相關(guān)推薦:
將excel中的數(shù)據(jù)按照指定數(shù)量進(jìn)行重復(fù),非得用VBA才能實(shí)現(xiàn)嗎?
Power Query的數(shù)據(jù)替換技巧比Excel函數(shù)更萬能!
版權(quán)申明:
本文作者賦春風(fēng);同時(shí)部落窩教育享有專有使用權(quán)。若需轉(zhuǎn)載請(qǐng)聯(lián)系部落窩教育。
最熱教程
- 像綠皮火車一樣長(zhǎng)像珠穆拉瑪峰一樣高的Excel表怎么操作才方便?
- Power Query實(shí)戰(zhàn):按指定次數(shù)遞增數(shù)據(jù)
- 2019年全網(wǎng)最全—excel提取身份證信息合集!(建議收藏)-下篇
- 明明沒有重復(fù),Excel卻判定數(shù)據(jù)重復(fù),這是怎么回事?
- 文本格式的求和,及求和中最容易出現(xiàn)的問題解疑
- 致命缺陷:不懂一維表!
- 函數(shù)組合思維,你有嗎?
- 學(xué)會(huì)這2個(gè)公式,整理考勤數(shù)據(jù)只要一分鐘
- 就算被說是拍馬屁也成,今天你應(yīng)該這樣發(fā)Excel報(bào)表……
- 如何計(jì)算Excel單元格中的算式,四種求和方法請(qǐng)收好!
最新教程
- 一個(gè)公式搞定空行的動(dòng)態(tài)插入
- 多功能銷售日歷模板制作
- 用正則函數(shù)快速拆分單元格中的同類數(shù)據(jù)
- 用免費(fèi)AI將圖片批量轉(zhuǎn)表格
- 先入先出出入庫(kù)模板中出庫(kù)批次的自動(dòng)匹配
- 用SUBSTITUTE替換法為產(chǎn)品找到最匹配的類別
- SHEETSNAME,一鍵獲得所有工作表名稱完成目錄制作
- 延遲退休落地,快速查詢你上幾年才退休!
- 快速將PDF電子發(fā)票數(shù)據(jù)提取到發(fā)票明細(xì)登記表的方法
- 提取、查找、替換數(shù)據(jù)的王者——REGEXP正則函數(shù)