【VBA教材】39.常用语句透析(十三)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【VBA教材】39.常用语句透析(十三)
贡献者:罗刚君日期:2009-10-14 阅读:1081
相关标签:pub2007VBA
Select Case与IF… Then…Else两者都可以实现多条件判断,但在使用中各有优势。

本节对两者做一详细比较
IF… Then…Else的优势在于在条件中可以随时使用And与Or运算符对多个对象设置条件,而Select Case语句只能针对Select Case语句中首先指定的唯一条件进行判断。

例如在A1大于60及B1小于60时执行过程“A”,否则执行过程“B”,IF… Then…Else语句可以利用以下方式完成:______________________________________________________
Sub 多对象设置条件() 'IF…Then…
IF [a1] < 60 And [b1] > 60 Then
Call A
Else
Call B
End IF
End Sub
______________________________________________________
而Select Case语句是无法完成以上条件的,它只能完成在A1大于60或者A1小于60时执行过程“A”,否则执行过程“B”这种需求。

代码如下:
______________________________________________________
Sub 单一对象多条件() 'Select Case
Select Case [a1]
Case Is < 60, Is > 60
Call a
Case Else
Call B
End Select
End Sub
______________________________________________________
在Select Case条件语句中,只能对一个对象设置条件,它可能是多个条件。

但多个对象指定多个条件则只能改用IF…Then…Else语句。

Select Case的优势在于对同一对象设置多条件时,它的速度优于IF…Then…Else语句。

IF...Then...Else 语句会计算每个ElseIF 语句的不同的表达式,在控制结构的顶部,Select Case语句只计算表达式一次。

例如以下两个过程中,达成的结果完全一致,但在速度上有一定差异。

其中Select Case语句只需要判断一次变量“Select Case”符合哪一个条件,而在IF…Then…Else语句中,有多少个IF和ElseIF就需要判断多少次。

______________________________________________________
Sub 评语1()
Select Case 成绩
Case Is < 0, Is > 100
MsgBox "输入错误"
Case Is < 60
MsgBox "不及格"
Case 60
MsgBox "及格"
Case 60 To 80
MsgBox "良"
Case 81 To 99
MsgBox "优"
Case Else
MsgBox "满分"
End Select
End Sub
______________________________________________________
Sub 评语2()
IF 成绩 < 0 Or 成绩 > 100 Then
MsgBox "输入错误"
ElseIF 成绩 < 60 Then
MsgBox "不及格"
ElseIF 成绩 = 60 Then
MsgBox "及格"
ElseIF 成绩 > 60 And 成绩 < 80 Then
MsgBox "良"
ElseIF 成绩 > 80 And 成绩 < 100 Then
MsgBox "优"
Else
MsgBox "满分"
End IF
End Sub
______________________________________________________
根据以上分析,读者可以进行多次测试,在实际工作中根据需求选择适当的语句。

罗.xls。

相关文档
最新文档