网易首页 > 网易号 > 正文 申请入驻

EXCEL图文教程:VBA条件语句入门级教程

0
分享至

编按:关于宏,条件语句是最常用的语句之一,条件语句是根据判断结果执行不同的过程,也就是“如果是……就进行……”。只有掌握了宏程序的条件语句,才能应用起来得心应手。这篇文章的目的,是介绍条件语句,其实条件语句只有两种:“IF…Then…Else”语句,“Slecct…Case”语句。

一、IF…Then…Else语句

1、语句介绍

到目前为止所学习过的宏都是从“Sub…”的下一行开始顺序执行,并以“End Sub…”作为结束的单向处理。对此,如果能根据不同的条件来改变流程,宏的可应用的范围就会大大扩展。在此就来学学“If…Then…Else”语句吧。该语句的语法结构是:

If条件表达式Then

条件满足时所执行的处理

Else

条件不满足时所执行的处理

End If

语法中,在If后放入条件,如果条件满足就执行Then后面的部分,如果不满足就执行Else后面的部分。其中,“Else条件不满足时所执行的处理”的部分如果没有必要可将其省略,此时,只有在条件满足时进行的处理,条件不满足则不进行处理。

2、举个例子

例1:下面的工作表,输入的数据行与未输入的数据行混在一起,要求在未输入的行前(A列)输入“无任何值”并填充黄色,而已输入数据行保持原样。

程序代码

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(行号,列标),“行号”参数表示纵向的位置,“列标”参数表示横向的位置,例如,Cells(1,2)的行号为1,列标为2,因此表示B1单元格。然后用“For…Next”循环语句从第二行到第14行检查Cells(y,1)的值,如果该值为"",然后就执行”Cells(y, 1).Value = "无任何值"”,也就是输入“无任何值”,再执行“Cells(y, 1).Interior.ColorIndex = 6”,也就是将单元格填充黄色。当单元格有数据时,也就是非“Cells(y, 1).Value = ""”时,不做处理,换句话不设置“Else”语句。

例2:对于第一行的第1-10列两个单元格做判断,如果单元格值为空,则在相应的第二列单元格输出“无数据”,否则输出“有数据”。

程序代码:

Sub判断语句()

Dim i As Integer

For i = 1 To 10

If Cells(1, i) = "" Then

Cells(2, i) = "无数据"

Else

Cells(2, i) = "有数据"

End If

Next

End Sub

二、Select…Case语句

1、概念介绍

在武侠世界中,有北乔峰和南慕容势均力敌、旗鼓相当。在VBA世界里,也有与“IF…Then…Else”齐名的条件语句“Select… Case”语句。假如遇到这样的条件:“如果是1就进行A,如果是2就进行B,如果是3就进行C……”,也就是处理好多情况的时候,应用“Select…Case”语句就能编出简明、易懂的宏语言。当然了,应用“IF…Then…Else”语句也能做到,但处理多个条件,“Select…Case语句”更加方便。该语句的语法结构是:

Select Case表达式

Case条件1

处理1

Case条件2

处理2

Case Else

其他处理

End Select

语法中,在Select Case后面放置表达式部分,并按此表达式进行分别处理。如果与所有条件都不符合,就会执行Case Else中的处理,而且,Case的分支无数量限制。

2、举个例子

例1:“A1:A10单元格”区域的值如果为70以上就填充蓝色,如果为50以上就填充黄色,其他的都填充红色。

程序代码:

Sub按数字大小填充红黄蓝色()

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”循环语句从第以行到第10行检查Cells(y,1)的值,如果该值为70以上(这种类型的比较要使用Is来写成“Is>=70” ),就执行语句“Cells(y, 1).Interior.ColorIndex = 5”,就行填充蓝色,同理,如果为50以上就填充黄色,至于其他的,就执行“Cells(y, 1).Interior.ColorIndex = 3”,就填充红色。

例2:2022年春夏秋冬分别为春季为3、4、5月份,夏季为6、7、8月份,秋季为9、10、11月份,冬季为12、1、2月份,我们可以通过不同月份判定当前是属于哪个季节。

程序代码

Sub判断季节()

Select Case Month(Now())

Case Is < 3

MsgBox ("隆冬到来时,百花亦已绝")

Case Is < 6

MsgBox ("春眠不觉晓,处处闻啼鸟")

Case Is < 9

MsgBox ("水积春塘晚,阴交夏木繁")

Case Is < 12

MsgBox ("自古逢秋悲寂寥,我言秋日胜春朝")

Case Else

MsgBox ("隆冬到来时,百花亦已绝")

End Select

End Sub

程序分析:首先用NOW()函数获取当前的时间节点,接着用Month()函数获取月份,然后用Select Case语句判断不同的月份,最后用MsgBox弹出一个对话框,对话框内是代表当前季节的古诗。

做Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!

将excel中的数据按照指定数量进行重复,非得用VBA才能实现吗?

如何在特定位置批量插入空行等12种实用办公技巧

4种删除excel重复值的小妙招,速收藏

Power Query的数据替换技巧比Excel函数更万能!

版权申明:本文作者赋春风;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
小杨阿姨迎来超长假期,小玥儿小菻菻已入住奶奶家,马筱梅快生了

小杨阿姨迎来超长假期,小玥儿小菻菻已入住奶奶家,马筱梅快生了

丁丁鲤史纪
2026-01-26 11:19:17
库里26+7勇士大胜送森林狼5连败 爱德华兹32+11难阻单节输21分

库里26+7勇士大胜送森林狼5连败 爱德华兹32+11难阻单节输21分

醉卧浮生
2026-01-26 08:51:22
三上悠亚公开在台湾当篮球啦啦队的照片,粉丝狂赞

三上悠亚公开在台湾当篮球啦啦队的照片,粉丝狂赞

随波荡漾的漂流瓶
2026-01-26 17:35:11
李湘洗钱风波升级!曝王诗龄已休学,对王诗龄的3点爆料全对上了

李湘洗钱风波升级!曝王诗龄已休学,对王诗龄的3点爆料全对上了

古希腊掌管月桂的神
2026-01-25 21:01:05
杭州有雨夹雪、雪!这波太猛,明天提前准备

杭州有雨夹雪、雪!这波太猛,明天提前准备

鲁中晨报
2026-01-26 13:51:04
广东将军山发现数米长蟒蛇 林业部门:遇到快走,系未开发区域

广东将军山发现数米长蟒蛇 林业部门:遇到快走,系未开发区域

新京报
2026-01-26 14:25:03
五代十国傻傻的分不清?带你理清五代皇帝,搞懂54年的五代历史

五代十国傻傻的分不清?带你理清五代皇帝,搞懂54年的五代历史

长风文史
2025-12-25 10:40:12
30岁女子洗澡时摸到颈部肿大淋巴结确诊肺癌后选择轻生,丈夫无奈:我们本来要二胎!

30岁女子洗澡时摸到颈部肿大淋巴结确诊肺癌后选择轻生,丈夫无奈:我们本来要二胎!

消化石医生
2025-11-29 11:38:20
雷军回应小米SU7和YU7下架熔岩橙配色:很帅,但敢买的人太少

雷军回应小米SU7和YU7下架熔岩橙配色:很帅,但敢买的人太少

齐鲁壹点
2026-01-26 15:36:27
如果他活着,世上本无大明朝:一代枭雄为何死于小人之手?

如果他活着,世上本无大明朝:一代枭雄为何死于小人之手?

芊芊子吟
2026-01-26 08:15:08
Lululemon新款瑜伽裤因易走光下架后重新上架,中国电商渠道暂未销售,创始人发声:公司已经完全迷失方向

Lululemon新款瑜伽裤因易走光下架后重新上架,中国电商渠道暂未销售,创始人发声:公司已经完全迷失方向

鲁中晨报
2026-01-24 21:59:13
委内瑞拉新政府宣布不承认马杜罗及其所有债务

委内瑞拉新政府宣布不承认马杜罗及其所有债务

桂系007
2026-01-25 23:56:17
“大傻”去世15年后,儿子入狱孙子身亡,王晶曝他旧事:是狠角色

“大傻”去世15年后,儿子入狱孙子身亡,王晶曝他旧事:是狠角色

妙知
2026-01-22 16:41:19
离谱!25岁前女足球员喊王钰栋父亲“岳父” :这门亲事考虑一下

离谱!25岁前女足球员喊王钰栋父亲“岳父” :这门亲事考虑一下

念洲
2026-01-26 07:07:34
技校到底能有多乱?网友的评论真的震惊到我了

技校到底能有多乱?网友的评论真的震惊到我了

夜深爱杂谈
2026-01-20 18:54:02
时隔两年Angelababy和黄晓明再次合体为儿子庆9岁生日 全程无交流

时隔两年Angelababy和黄晓明再次合体为儿子庆9岁生日 全程无交流

小娱乐悠悠
2026-01-26 11:42:27
“让我睡一次,不然死给你看!”17岁少年持刀,威胁舅妈发生关系

“让我睡一次,不然死给你看!”17岁少年持刀,威胁舅妈发生关系

有书
2026-01-09 21:30:59
越南公安部队精锐保卫越共十四大 大量装备进口枪械 却是绣花枕头

越南公安部队精锐保卫越共十四大 大量装备进口枪械 却是绣花枕头

hawk26讲武堂
2026-01-26 12:38:08
突然暴跌!北京降了!价格再次大跳水!

突然暴跌!北京降了!价格再次大跳水!

美丽大北京
2026-01-26 11:59:12
1958年,李达和毛泽东吵架,李达怒言:你脑子发热,高烧到39度了

1958年,李达和毛泽东吵架,李达怒言:你脑子发热,高烧到39度了

元哥说历史
2026-01-23 09:30:03
2026-01-26 20:24:49
部落窝教育
部落窝教育
办公软件、平面设计,必有所成
1528文章数 18455关注度
往期回顾 全部

头条要闻

国企董事长打伤要债人被拘 被打男子:80万元一直不给

头条要闻

国企董事长打伤要债人被拘 被打男子:80万元一直不给

体育要闻

叛逆的大公子,要砸了贝克汉姆这块招牌

娱乐要闻

张雨绮被实名举报代孕、插足婚姻

财经要闻

从美式斩杀线看中国社会的制度韧性构建

科技要闻

印奇再上牌桌,阶跃融资50亿

汽车要闻

宾利第四台Batur敞篷版发布 解锁四项定制创新

态度原创

本地
数码
房产
公开课
军事航空

本地新闻

云游中国|格尔木的四季朋友圈,张张值得你点赞

数码要闻

极摩客公布"Lunar Lake"迷你主机K13:搭载256V + 16GB内存

房产要闻

突发!三亚官宣,调整安居房政策!

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

委代总统称遭美威胁:马杜罗已死

无障碍浏览 进入关怀版