Hi,大家好,本专栏将会从零开始和大家用图文的方式,让你从零基础学会VBA!有兴趣的小伙伴可以持续关注我,或者在专栏进行查看学习,愿与君携手共进!

在上一章节我们已经学习过如何使用IF—Then条件判断语句,这个在判断单个条件的时候或许非常的实用,但是在多条条判断的时候,我们为了避免难以弄清的复杂的嵌套的If语句,在这个时候你可以选择使用Select Case语句代替他完成这个。先来看看Select Case语句的解释和使用方法:

Select Case 测试表达式

Case 表达式1

如果表达式1匹配测试表达式的语句

Case 表达式2

如果表达式2匹配测试表达式的语句

Case 表达式N

如果表达式N匹配测试表达式的语句

Case Else

如果没有表达式匹配测试表达式要执行的语句

End Select

对以上的语法我们说几点注意事项:

1、Select Case和End Select之间放置任意多个条件以测试。子句Case Else是可选的,我们通常在这里写没有考虑到的情况的代码或者提示错误信息。

2、当执行的时候遇到Select Case,它会记下测试表达式的值。然后它前进到下面的第一个Case子句,如果这个表达式的值和测试表达式的值匹配的话,就会执行语句直到遇到另外一个Case子句并且跳到End Select语句。然而,如果第一个Case子句后面的表达式测试结果和测试表达式不匹配时,就会检查每一个Case子句,直到它找到一个匹配的为止。如果没有一个Case子句后面的表达式匹配测试表达式的值的话,VB就会跳到Case Else子句并执行该语句直到遇到关键字End Select。

3、Case Else子句是可选的,如果你的程序里面没有使用Case Else并且没有一个Case子句的表达式和测试表达式相匹配,VB就会跳到End Select后面的语句,并且继续执行你的程序。

Select Case语句经常用于将某变量或表达式的值,与一组数据分别进行比较,判断相等或不相等,并执行相应的分支语句列,通常写出来的代码会比If-Else语句的整洁,容易看懂;

现在我们举2个例子来说明如何使用这个语句,让你不再迷茫。

Step-01 Select Case单条件判断实现的方式,这个和我的IF—Then语句比较类似,我们可以对比来学习。在使用这个语句的时候,我们通常是把最有可能的结果放置在最前面,这个可以加快程序的执行速度。

Sub select单条件判断()

i = 1

Select Case i

Case Is > 0

MsgBox "正数"

Case Else

MsgBox "负数"

End Select

Step-02 Select Case多条件判断实现的方式,你有没有发现这个语句的可读性是不是比IF语句好一点,这个写出来的话,思路是非常清晰的,并且容易发现这个是不是没有考虑完善,一眼就可以看到,这个并且可以扩展,也就是说我们在Case的语句可以放置多行执行语句,这个并不受数量限制。

Sub select多条件判断()

Select Case Sheet1.[d1].Value

Case "A"

Sheet1.[a3] = "A型血的你,是个不怎么样的人!"

Case "B"

Sheet1.[a3] = "B型血的你,也是个不怎么样的人!"

Case "AB"

Sheet1.[a3] = "AB型血的你,是个更不怎么样的人!"

Case "O"

Sheet1.[a3] = "O型血的你,还是不错的!"

Case Else

Sheet1.[a3] = "大哥,你是奇葩,居然没有你的血型!"

End Select

End Sub

我们说了VBA中间的条件判断语句,我们至此已经把条件判读语句说完了。在一章节我们将会说到循环语句的使用方法。在这里我们说下If--Then和Select case 都是用来处理多条件的语句,但是他们的区别在于:

  1. 1. If elseif .. 的每个分支都是独立的表达式,只有在前一个分支没有匹配才进行后一个分支的表达式判断。

  2. 2. select case一般用于对同一个表达式不同结果值分支的语句

好啦!快乐的时间总是非常短暂的,又到了和大家说再见的时候,如果大家感觉本文如果对你有所帮助的话,请帮忙转发点赞,谢谢您能观看到现在,我们下期再见!

我是Excel教案,关注我持续分享更多的Excel技巧!

如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。