二维码 购物车
部落窝在线教育欢迎您!

别怕,VBA入门级教程来了,条件语句很简单!

 

作者:赋春风来源:部落窝教育发布时间:2022-02-21 16:27:21点击:1920

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。

编按:

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

 

一、IF…Then…Else语句

1、语句介绍

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

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……”,也就是处理好多情况的时候,应用“SelectCase”语句就能编出简明、易懂的宏语言。当然了,应用“IF…Then…Else”语句也能做到,但处理多个条件,“SelectCase语句”更加方便。该语句的语法结构是:

Select Case 表达式

Case 条件1

处理1

Case 条件2

处理2

……

Case Else

其他处理

End Select

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

2、举个例子

1A1A10单元格”区域的值如果为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”,就填充红色。

22022年春夏秋冬分别为春季为345月份,夏季为678月份,秋季为91011月份,冬季为1212月份,我们可以通过不同月份判定当前是属于哪个季节。



程序代码

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弹出一个对话框,对话框内是代表当前季节的古诗。

 

 

本文配套的练习课件请加入QQ群:902294808下载。

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

扫下方二维码关注公众号,可随时随地学习Excel

IMG_256

相关推荐:

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

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

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

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

版权申明:

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