vba编程中,有一种情况需要解决,成对出现的一组相关的数据,如一对恋人A和B,给出A就会找出B这个结果来。
现实意义上有国家和首都,省和省会名称,人的姓和名等等一些成对出现的情况。
这种情况并不是少见,所以,VBA也给出了一个解决办法,定义了一个函数:Switch()
函数语法如下图所示:
其基本功能就是找出表达式为真的一个值。
如:
dim x
x=2
xValue=Switch(x= 1,"A",x=2,"B",x=3,"C")
xValue的值就是“B”。
也就是说当x=2的时候,返回“B”,当x=1的时候返回"A",当x=0的时候,返回Null,也就是没有比较为真的表达式。
如下示例,给出了当天是星期几的一个提示,很意思:
Function GetWeek(WeekID As Integer) '返回一个星期名称 Swith函数
GetWeek = Switch(WeekID = 1, "星期日", WeekID = 2, "星期一", WeekID = 3, _
"星期二", WeekID = 4, "星期三", WeekID = 5, "星期四", _
WeekID = 6, "星期五", WeekID = 7, "星期六")
End Function
调用方法:
MsgBox "今天是:" & GetWeek(VBA.Weekday(VBA.Date))
调用代码中使用了WeekDay函数和Date函数。
WeekDay函数返回一个数字,表示星期几,从星期日为1到星期六为7。
Date就是给出当前日期的函数。
Switch函数有两个参数类型,前一个为表达式,后一个为值,返回值为当表达式为真的时候,后面的值,如果在整个Switch中没有表达式为真值,那么就返回一个Null。
如:
s = Switch(2 = 1, "A", 3 = 2, "B", 5 = 3, "C")
MsgBox VBA.IsNull(s)
返回一个True,也就是s的值为Null。
应用过程中,判断一个值是否存在的情况下需要做些处理。
联系客服