人生经常要面临“多选一”的情况,在编写程序代码时也是如此 。在上篇文章中,我们讲解了使用If-Then结构来进行判断,也举了很多个小例子 。我们看到,随着条件的增多,代码的结构也变得复杂或难以理解 。幸运的是,VBA为我们提供了Select Case结构,让我们根据多个条件判断选择时,能够写出容易理解的代码 。
上篇文章的结尾举了一个例子:按照一定的规则,根据员工的工龄来确定员工的年休假天数:
工龄(年)年休假天数10年及以下510~201020~251525年以上20现在,我们使用Select Case结构来编写代码,实现相同的功能 。首先看看示例代码:
示例代码1
Sub NianXiuTianWithSelectCase()
‘声明变量,用来表示年休天数和工龄
Dim lngDays As Long
Dim lngYears As Long
lngYears = Range(“A1”).Value
‘根据工龄确定相应的年休天数
Select Case lngYears
Case 0 To 10
lngDays = 5
Case 10 To 20
lngDays = 10
Case 20 To 25
lngDays = 15
Case Is > 25
lngDays = 20
End Select
MsgBox “工龄:” &lngYears & vbCrLf & “年休天数:” &lngDays
End Sub
同样,您可以在工作表单元格A1中输入代表工龄的数字,运行代码后,会显示相应的年休天数,就像在上篇文章中所示的图一样 。
与上篇文章中的代码相比,既简单又易理解 。
Select Case结构的语法如下:
Select Case
推荐阅读
- Excel VBA解读有限次的循环
- Excel VBA对象模型
- excel函数获取重复次数最多的值
- excel函数获取重复数据出现的最大次数
- excel函数求单元格区域中指定词语出现的次数
- excel函数获取与查找值相对应的多个值
- excel常用函数判断回文
- excel函数获取与满足多个查找条件的所有值
- excel函数求相邻单元格两两相乘之积的和
- excel常用函数求数值中的各个数字之和