VBA中的Select Case语句
SelectCase语句教程
SelectCase语句教程为了避免难以弄清的复杂的嵌套的If语句,你可以使用Select Case语句代替。
它的语法为:Select Case 测试表达式Case 表达式1如果表达式1匹配测试表达式的语句Case 表达式2如果表达式2匹配测试表达式的语句Case 表达式N如果表达式N匹配测试表达式的语句Case Else如果没有表达式匹配测试表达式要执行的语句End Select你在关键字Select Case和End Select之间放置任意多个条件以测试。
子句Case Else是可选的,当你希望可能有条件表达式返回假时使用它。
在Select Case语句里,VB将每个表达式和测试表达式相比较。
这里是Select Case语句背后的逻辑。
当VB遇到Select Case子句,它记下测试表达式的值。
然后它前进到下面的第一个Case子句,如果这个表达式的值和测试表达式的值匹配的话,VB就会执行语句直到遇到另外一个Case子句并且跳到End Select语句。
然而,如果第一个Case子句后面的表达式测试结果和测试表达式不匹配时,VB就会检查每一个Case子句,直到它找到一个匹配的为止。
如果没有一个Case子句后面的表达式匹配测试表达式的值的话,VB就会跳到Case Else子句并执行该语句直到遇到关键字End Select。
注意,Case Else 子句是可选的,如果你的程序里面没有使用Case Else并且没有一个Case子句的表达式和测试表达式相匹配,VB就会跳到End Select后面的语句,并且继续执行你的程序。
我们来一个使用Select Case语句的程序例子。
在第四章里,你学习了MsgBox函数允许你显示带有一个或多个按钮的信息,你也学习了MsgBox函数的结果可以赋予一个变量。
使用Select Case语句,你现在可以基于用户按下的按钮决定采取哪个行动。
1. 在当前工程里插入一新模块2. 重命名新模块SelectCase.3. 输入下述过程TestButtons:Sub TestButtons()Dim question As StringDim bts As IntegerDim myTitle As StringDim myButton As Integerquestion = "Do you want to open a new workbook?"bts = vbYesNoCancel + vbQuestion + vbDefaultButton1myTitle = "New Workbook"myButton = MsgBox(prompt:=question, buttons:=bts, _ title:=myTitle)Select Case myButtonCase 6Workbooks.AddCase 7MsgBox "You can open a new book manually later."Case ElseMsgBox "You pressed Cancel."End SelectEnd Sub过程TestButtons的第一部分显示一个带有三个按钮的信息框:是,否和取消。
理解VB中选择语句SelectCase结构的最好例子
'以下代码是程序退出
Private Sub Command3_Click() End
End Sub
Case Else
'测试表达式的值x在其它情况下
Text2.Text = "不及格" '文本框Text2中显示“不及格”
End Select End Sub
'以下代码是清除文本框Text1、Text2中所显示的内容,且将焦点放在文本框Text1上
Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Te78、79情况下
Text2.Text = "中等" '文本框Text2中显示“中等”
Case 60, 61, 62, 63 To 66, Is >= 67 '测试表达式的值x为60、61、62、63、在64至66情况
下、大于等于67的情况下
Text2.Text = "及格" '文本框Text2中显示“及格”
Case Is >= 90
'测试表达式的值x大于等于90情况下
Text2.Text = "优秀" '文本框Text2中显示“优秀”
Case 80 To 90
'测试表达式的值x在80至90情况下
Text2.Text = "良好" '文本框Text2中显示“良好”
Case 70, 71, 72, 73, 74, 75, 76, 77, 78, 79 '测试表达式的值x为70、71、72、73、74、75、
VBA编程中的SelectCase语句
从上⾯的例予可以看出,如果条件复杂,分⽀太多,使⽤If语句就会显得累赘,⽽且程序也将变得不易阅读。
这时可使⽤Select Case语句来写出结构清晰的程序。
Select case语句可根据表达式的求值结果,选择执⾏⼏个分⽀中的⼀个分⽀。
其语法如下:
Select Case
[(;ase]
[]]
[case Else
[]]
End Select
(1)检验表达式必要参数,可为任何数值表达式或字符串表达式。
(2)⽐较列表1 若有case出现,则为必要参数。
它是多个“⽐较元素”的列表,其中可包含“表达式”、“表达式To表达式”、“Is 表达式’’⼏种形式。
如果“⽐较元素”中含有“To”关键字,则前⼀个表达式必须⼩于后⼀个表达式(对于数值表达式,指的是数值⼤⼩;对于字符串表达式,则指排序),且必须介于两个表达式之间。
如果含有“Is”关键字,则“⽐较操作符’’表达式的值必须为真。
(3)语句1~n可包含⼀条或多条语句。
如果有⼀个以上的Case⼦句与“检验表达式”匹配,则VBA只执⾏第⼀个匹配的Case后⾯的“语句”。
如果前⾯的case⼦句与都不匹配,则执⾏Case Else⼦句中的语句n。
vba条件判断语句select语句
vba条件判断语句select语句VBA中的条件判断语句主要包括If语句和Select Case语句。
1. If语句:If语句用于根据条件的结果来执行不同的代码块。
其基本结构为:```vbaIf condition Then'如果条件为True时执行的代码块ElseIf condition1 Then'如果条件1为True时执行的代码块ElseIf condition2 Then'如果条件2为True时执行的代码块Else'如果条件都不满足时执行的代码块End If```其中,condition、condition1、condition2等是要判断的条件表达式,可以是逻辑表达式、比较表达式等。
注意,Else和后面的条件是可选的,可以根据实际需要来选择是否使用。
2. Select Case语句:Select Case语句是根据一个或多个表达式的结果来选择执行哪个代码块。
其基本结构为:```vbaSelect Case expressionCase value1'如果expression等于value1时执行的代码块Case value2'如果expression等于value2时执行的代码块Case Else'如果expression不等于前面的value时执行的代码块End Select```其中,expression是要判断的表达式,value1、value2等是要比较的值。
Case语句可以有多个,可以根据需要添加不同的取值情况。
Case Else是可选的,用于当expression不满足前面的条件时执行的代码块。
这些条件判断语句在VBA中可以灵活应用,根据不同的条件来执行不同的操作,增强了程序的功能和逻辑性。
此外,VBA还提供了其他一些条件判断的函数和运算符,如:- And运算符:用于判断多个条件是否同时满足;- Or运算符:用于判断多个条件是否其中之一满足;- Not运算符:逻辑非运算符,用于反转条件的结果;- Iif函数:用于根据条件的结果返回不同的值;- IsNull函数:判断一个表达式是否为Null。
vba编程 判断语句
vba编程判断语句VBA编程是一种用于操作Excel等Microsoft Office应用程序的编程语言。
在VBA中,判断语句是一种常用的语句类型,用于根据条件的真假执行不同的代码块。
下面列举了10个常用的VBA判断语句及其用法。
1. If语句:用于根据条件的真假执行不同的代码块。
```If condition Then' 执行代码块1Else' 执行代码块2End If```2. ElseIf语句:用于在多个条件之间进行判断。
```If condition1 Then' 执行代码块1ElseIf condition2 Then' 执行代码块2Else' 执行代码块3End If```3. Select Case语句:用于根据不同的条件执行不同的代码块。
```Select Case expressionCase value1' 执行代码块1Case value2' 执行代码块2Case Else' 执行代码块3End Select```4. For循环语句:用于重复执行一段代码,次数由循环条件决定。
```For index = start T o end Step step' 执行代码块Next index```5. Do While循环语句:用于在满足条件的情况下重复执行一段代码。
```Do While condition' 执行代码块Loop```6. Do Until循环语句:用于在不满足条件的情况下重复执行一段代码。
```Do Until condition' 执行代码块Loop```7. While循环语句:用于在满足条件的情况下重复执行一段代码。
```While condition' 执行代码块Wend```8. Until循环语句:用于在不满足条件的情况下重复执行一段代码。
```Until condition' 执行代码块Loop```9. Exit语句:用于提前结束循环或过程。
VB编程之Select Case语句
本文介绍VB中一种选择结构——Slect Case语句。
Select Case语句也称为情况语句,是多分支结构的另一种表示形式。
语句格式如下:Select Case语句的功能是首先计算<测试表达式>的值,然后用计算结果从前到后依次与每个Case子句的<表达式列表>的值进行比较。
如果匹配成功,则执行该Case子句后的语句块,然后执行End Select语句。
如果没有匹配的,且存在Case Else语句则执行Case Else子句后的语句块n+1,然后执行End Select语句。
<表达式列表>有4种形式:1,表达式如:Case 5 或 Case "a"2,表达式1 To 表达式2Case 1 to Case 20或Case "A" to "Z"3,Is关系运算符表达式如:Case Is<604,用逗号分隔的以上3种形式的列表如:Case 1 to3,10 to 15 ,6,9,Is>100说明:To用来指定一个范围,必须将小的值写在前面,而大的值写的后面Is及后面的关系运算符和表达式来指定一个数值范围。
如Is>50 ,但是不能用两个或多个组合在一起,例如Case Is>10 And Is<20,这是错误的表达形式Select Case语句与If语句功能类型,一般情况下可以相互替换。
举例:要求:编程求指定某年某月的天数。
如下图所示;分析:月份天数有3种情况,即31天、30天、29天或28天。
第3种情况与是否为闰年有关,闰年的2月为29天,非闰年的2月为28天。
闰年是能被4整除但不能被100整除的年(如2004年),或者能被400整除的年(如2000年)。
步骤一:按照上图设计程序界面。
步骤二:添加代码,如下所示步骤三:测试效果,输入年份和月份后,单击求天数按钮即可计算出该月的天数。
11.VBA基本语句(selectcase)
11.VBA基本语句(selectcase)
周六 · 探索 关键词:VBA概念
⼩伙伴们,上⼀篇我们提到了判断多条件,⽤IF来进⾏,今天啊,我们要学习的,同样是⽤来判断的语句——select case ,选择情况。
1select case
这个中⽂解释有点挫,我把它翻译成,万⼀发⽣了什么情况,就选择什么结果。
Select case 语句,最后的结束语句是 end select
2解析
Select case 后⾯跟着的语句是⽤来给程序判断和⽐较的值。
Case is 后⾯跟着的是参数,⽤于⽐较的参数值。
End select 是结束语句。
3应⽤
究竟什么时候⽤if 什么时候⽤case 呢?
阿狸个⼈习惯是,如果是多条件⼀起判断,会选择IF,例如,既是美⼥⼜是⾼材⽣且还是温柔的⼈。
如果是单⼀条件进⾏⽐较,但情况⽐较多,会选择case。
例如:他如果是男的,就是先⽣,如果是⼥的就是⼩姐,否则就是性别不明。
vba中多条件判断
vba中多条件判断在VBA中,我们经常需要根据不同的条件来进行判断和处理。
如果只有一个条件,我们可以使用If语句来实现。
但是,当我们需要同时判断多个条件时,就需要用到多条件判断了。
一、使用And和Or运算符在VBA中,我们可以使用And和Or运算符来实现多条件判断。
And 表示“且”的意思,只有同时满足所有的条件才会执行相应的代码;Or表示“或”的意思,只要满足其中任何一个条件就会执行相应的代码。
下面是一个使用And运算符的例子:```If age > 18 And sex = "男" Then'执行相应的代码End If```上面的代码中,只有当年龄大于18岁并且性别为男时才会执行相应的代码。
下面是一个使用Or运算符的例子:```If score >= 60 Or isPass = True Then'执行相应的代码End If```上面的代码中,只要成绩大于等于60分或者已经通过考试了就会执行相应的代码。
二、使用Select Case语句除了使用And和Or运算符外,我们还可以使用Select Case语句来实现多条件判断。
Select Case语句可以根据表达式(通常是变量)的值来选择不同的分支,并执行相应的代码。
下面是一个使用Select Case语句实现多条件判断的例子:```Select Case scoreCase Is >= 90'执行相应的代码Case Is >= 80 And score < 90'执行相应的代码Case Is >= 70 And score < 80'执行相应的代码Case Else'执行相应的代码(包括分数小于70分的情况)End Select```上面的代码中,根据成绩的不同范围执行不同的代码。
如果成绩大于等于90分,则执行第一个分支中的代码;如果成绩在80到89之间,则执行第二个分支中的代码;以此类推。
Vb-程序的选择结构select-case结构
Label1. Caption = strC + "是数字字符"
Else
Label1. Caption = strC + “是其他字符"ห้องสมุดไป่ตู้
End If
将以上语句用Select Case语句实现
【例2】:评定成绩等级 90~100:“优”80~89:“良” 70~79:“中”60~69:“及格”
60分以下为“不及格”
2.测试表达式类型应与Case表达式类型一致
【例1】:变量strC中存放一个字符,判断是字母、数字
If Ucase(strC) >=“A” And Ucase (strC) <=“Z” Then
Label1.Caption= strC + "是字母字符"
ElseIf strC >="0" And strC <="9" Then
Is 关系运算表达式
Case is <30
数值或字符串表达式,表述固 定值之一
用来指定一个范围,较小的 在To前,较大在To后
可配合比较运算符来指定一 个数值范围,不能用逻辑运 算符将两个或多个简单条件 组合在一起
注意: 1. 以上几种形式可以混用, 例如: Case Is < -5 , 0 , 5 To 100
C = Val(Text3.Text): Picture1.Cls If A = 0 Then
If B = 0 Then MsgBox "系数为零,请重新输入"
Else X = -C / B: Picture1.Print "X="; X
End If Else
vbselectcase优化
vbselectcase优化摘要:1.VB Select Case 语句概述2.VB Select Case 语句的优化方法3.优化VB Select Case 语句的实际案例与效果正文:VB Select Case 语句优化VB(Visual Basic)是一种常用的编程语言,Select Case 语句是VB 中用于实现多分支选择的关键语句。
它可以根据不同的条件执行不同的代码块。
然而,在某些情况下,Select Case 语句可能会导致性能下降。
本文将介绍如何优化VB Select Case 语句,提高程序性能。
VB Select Case 语句的优化方法1.使用数组代替多层嵌套的Select Case在某些情况下,Select Case 语句可能会出现多层嵌套。
这种情况下,可以使用数组来简化代码,提高性能。
将多个条件放入数组中,然后使用数组元素进行判断。
```vbDim conditions() As String = {"A", "B", "C"}Dim result As StringSelect Case TrueCase conditions(0) = "A"result = "A"Case conditions(1) = "B"result = "B"Case conditions(2) = "C"result = "C"End Select```2.使用字典进行条件判断如果条件是字符串类型,可以使用字典进行条件判断。
将条件作为字典的键,对应的值作为结果。
这样可以在O(1)的时间复杂度内进行条件判断。
```vbDim conditions As New Dictionary(Of String, String)conditions.Add("A", "A")conditions.Add("B", "B")conditions.Add("C", "C")Dim result As StringSelect Case TrueCase conditions.TryGetValue("A", result)" Do something with resultCase conditions.TryGetValue("B", result)" Do something with resultCase conditions.TryGetValue("C", result)" Do something with resultEnd Select```3.使用Lookup 函数进行条件判断在 中,可以使用Lookup 函数进行条件判断。
vbselectcase语句
vbselectcase语句VBSelectCase语句是Visual Basic编程语言中的一种控制结构,用于根据不同的条件执行不同的代码块。
它是一种灵活且易于阅读的方式来处理多个条件判断。
下面是一些关于VBSelectCase语句的例子,以展示其在实际应用中的用途和功能。
1. 根据用户输入的数字,判断其属于哪个等级(1-5),并输出相应的提示信息。
```VBDim num As IntegerConsole.WriteLine("请输入一个数字:")num = Console.ReadLine()Select Case numCase 1Console.WriteLine("您的等级为初级。
")Case 2Console.WriteLine("您的等级为中级。
")Case 3Console.WriteLine("您的等级为高级。
")Case 4Console.WriteLine("您的等级为专家级。
")Case 5Console.WriteLine("您的等级为顶级。
")Case ElseConsole.WriteLine("输入无效。
")End Select```2. 根据用户选择的颜色,设置窗体的背景色。
```VBDim color As StringConsole.WriteLine("请选择一个颜色(红/绿/蓝):") color = Console.ReadLine()Select Case colorCase "红"Me.BackColor = Color.RedCase "绿"Me.BackColor = Color.GreenCase "蓝"Me.BackColor = Color.BlueCase ElseConsole.WriteLine("无效的颜色选择。
#ExcelVBA#解读(22):方便的“多选一”结构——SelectCase结构
#ExcelVBA#解读(22):方便的“多选一”结构——SelectCase结构人生经常要面临“多选一”的情况,在编写程序代码时也是如此。
在上篇文章中,我们讲解了使用If-Then结构来进行判断,也举了很多个小例子。
我们看到,随着条件的增多,代码的结构也变得复杂或难以理解。
幸运的是,VBA为我们提供了Select Case结构,让我们根据多个条件判断选择时,能够写出容易理解的代码。
上篇文章的结尾举了一个例子:按照一定的规则,根据员工的工龄来确定员工的年休假天数:工龄(年)年休假天数10年及以下 510~20 1020~25 1525年以上20现在,我们使用Select Case结构来编写代码,实现相同的功能。
首先看看示例代码:示例代码1Sub NianXiuTianWithSelectCase()'声明变量,用来表示年休天数和工龄Dim lngDays As LongDim lngYears As LonglngYears = Range('A1').Value'根据工龄确定相应的年休天数Select Case lngYearsCase 0 To 10lngDays = 5Case 10 To 20lngDays = 10Case 20 To 25lngDays = 15Case Is > 25lngDays = 20End SelectMsgBox '工龄:' &lngYears & vbCrLf & '年休天数:' &lngDays End Sub同样,您可以在工作表单元格A1中输入代表工龄的数字,运行代码后,会显示相应的年休天数,就像在上篇文章中所示的图一样。
与上篇文章中的代码相比,既简单又易理解。
Select Case结构的语法如下:Select Case 条件(表达式)[Case 表达式值1[语句块] ][Case 表达式值2[语句块] ]……[Case Else[语句块] ]End Select说明:•当某个Case“表达式值”满足“条件(表达式)”的结果时,执行相应的语句块,并退出Select Case结构。
vba select case用法
vba select case用法VBA的Select Case语句用于根据表达式的值选择执行不同的代码块。
它可以替代多个嵌套的If语句,结构更清晰,代码更简洁。
Select Case语句的基本语法如下:```Select Case expressionCase value1'执行代码块1Case value2'执行代码块2Case value3'执行代码块3Case Else'执行代码块4(可选项)End Select```expression为需要进行判断的表达式,value1, value2等为表达式可能的取值。
当expression的值与某个Case后面指定的值相等时,将会执行对应的代码块。
如果表达式的值与任何一个Case语句后面指定的值都不相等,则执行可选的Case Else代码块,如果没有指定Case Else,则不执行任何代码。
拓展:1. Case语句可以使用范围值进行比较,例如:```Case 1 To 10'执行代码块```这表示当expression的值在1到10之间(包括1和10)时,执行对应的代码块。
2. Case语句还可以使用逻辑运算符组合多个条件,例如:```Case Is > 10 And Is < 20'执行代码块```这表示当expression的值大于10且小于20时,执行对应的代码块。
3.在Case语句中,可以使用多个表达式对应同一个代码块,例如:```Case "A", "B", "C"'执行代码块```这表示当expression的值为"A"、"B"或者"C"时,执行对应的代码块。
4.可以在代码块中使用Exit Select语句来提前退出Select Case 语句的执行。
ExcelVBA编程SelectCase语句
ExcelVBA编程SelectCase语句Excel VBA编程Select Case语句该语句的结构为选择程序结构,它根据表达式的值,来判断执行几组语句中的其中哪一个语句。
虽然前面介绍的IF…Then…Else结构比较简单,但是当添加太多的Else if子句时,会使代码变得繁琐。
Select Case是IF…Then…Else结构的一种变通形式,可使代码变得简练易读。
但是,并不是所有的多分支结构均可用Select Case语句代替If语句。
语法:Select Case testexpression[Case expressionlist-n[statements-n]] ...[Case Else[elsestatements]]End SelectSelect Case语句的语法具有以下几个部分:●testexpression 必要参数。
任何数值表达式或字符串表达式。
●expressionlist-n 如果有Case出现,则为必要参数。
其形式为expression,expression To expression,Is comparisonoperator expression的一个或多个组成的分界列表。
To关键字可用来指定一个数值范围。
如果使用T o关键字,则较小的数值要出现在T o之前。
使用Is关键字时,则可以配合比较运算符(除Is和Like之外)来指定一个数值范围。
如果没有提供,则Is关键字会被自动插入。
●statements-n 可选参数。
一条或多条语句,当testexpression 匹配expressionlist-n中的任何部分时执行。
●elsestatements 可选参数。
一条或多条语句,当testexpression不匹配Case子句的任何部分时执行。
下面的示例使用Select Case语句来判断变量的值。
Dim NumberNumber = 8 ' 设置变量初值。
VBA中条件判断的灵活运用
VBA中条件判断的灵活运用在VBA(Visual Basic for Applications)中,条件判断是一种常用的编程技巧,它可以根据特定的条件选择不同的操作或执行路径。
合理且灵活地运用条件判断,可以提高代码的可读性和执行效率。
本文将介绍VBA中条件判断的常见用法,包括IF语句、SELECT CASE语句和嵌套条件判断。
1. IF语句IF语句是VBA中最基本和常用的条件判断结构,它用于判断给定条件的真假,并根据判断结果执行相应的操作。
语法格式如下:```If condition ThenstatementElseIf condition ThenstatementElsestatementEnd If```其中,“condition”是一个逻辑表达式,可以是比较运算符(如等于、不等于、大于、小于等)的组合。
如果“condition”成立(即返回True),则执行紧随其后的“statement”。
如果“condition”不成立,则跳过该IF语句块。
以下是一个例子:```vbaSub IfExample()Dim num As Integernum = 10If num > 0 ThenMsgBox "Number is positive."ElseIf num < 0 ThenMsgBox "Number is negative."ElseMsgBox "Number is zero."End IfEnd Sub```上述例子中,根据变量“num”的值,程序会弹出不同的消息框。
如果“num”大于零,则显示“Number is positive.”;如果“num”小于零,则显示“Number is negative.”;如果“num”等于零,则显示“Number is zero.”。
2. SELECT CASE语句SELECT CASE语句是VBA中用于多个条件判断的结构,它更适合处理多个固定值的情况。
vba select case语句用法与案列教程
VBA Select Case语句用法与案例教程VBA(Visual Basic for Applications)是一种基于Microsoft Visual Basic的宏语言,专门用于在Microsoft Office应用程序中进行编程和自定义。
在VBA中,Select Case语句是一种非常有用的控制流语句,用于根据一个表达式的值来执行不同的代码块。
本文将详细介绍VBA中Select Case语句的用法,并通过案例教程来帮助读者更好地理解和应用这个功能。
1. Select Case语句的基本结构在VBA中,Select Case语句的基本结构如下:```vbaSelect Case 表达式Case 值1' 代码块1Case 值2' 代码块2Case 值3' 代码块3...Case Else' 默认代码块End Select```在这个结构中,首先根据表达式的值来进行匹配,如果匹配到某个值,就执行对应的代码块,如果没有匹配到任何值,则执行Case Else后面的代码块。
通过这种结构,我们可以在VBA程序中实现复杂的逻辑控制。
2. Select Case语句的用法Select Case语句可以用于比较表达式的值,以及执行相应的代码块。
在实际应用中,它通常用于处理多个条件的情况,使得代码更加清晰和易于维护。
举个例子,假设我们需要根据用户输入的成绩来判断其等级,可以使用Select Case语句来实现:```vbaSub GradeLevel(score As Integer)Select Case scoreCase 90 To 100MsgBox "优秀"Case 80 To 89MsgBox "良好"Case 70 To 79MsgBox "中等"Case 60 To 69MsgBox "及格"Case ElseMsgBox "不及格"End SelectEnd Sub```在这个例子中,根据用户输入的成绩,程序会判断其所在的等级,并弹出相应的信息框。
VBA中的SelectCase语句
Select Case语句也是条件语句之一,而且是功能最强大的条件语句。
它主要用于多条件判断,而且其条件设置灵活、方便,在工作中使用频率极高。
本节介绍Se lectCase语句的语法及应用案例.Select Case语句的语法如下:Select Case testex press ion[Case expres sionl ist-n[statem ents-n]] ...[Case Else[elsest ateme nts]]End SelectSelect Case语句包括四部分,每部分详细含义如表38-1所示。
表38-1Select Case语句各部分含义在以上语法列表中,省略号代表可以使用多个条件。
只要有一个C ase就需要有一个s tatem ents-n,表示条件及符合条件时的执行条件。
其中else state ments表示不符合指定条件时的执行语句,是可选参数。
可以忽略el sesta temen ts,也可以执行一条或者一组语句,为了让程序能够处理一些不可预见的情况,尽量使用el sesta temen ts语句处理不符合条件时该如何回应。
在Selec t Case的多个参数中,最复杂的是e xpres sionl ist-n部分,它有多种表达形式,包括:lExpre ssion——直接声明一个条件值,例如5lexpre ssion To expres sion——声明一个条件的范围,例如5-10lIs compar isono perat or——声明一种比较方式,例如is >5下面的实例可以展示参数中expr essio nlist-n部分的多种表达形式。
实例1:多条件时间判断根据当前的时间判断是上午、中午,还是下午、晚上、午夜。
Vb-程序的选择结构select-case结构ppt课件
注意: 1. 以上几种形式可以混用, 例如: Case Is < -5 , 0 , 5 To 100
2.测试表达式类型应与Case表达式类型一致
编辑课件
4
【例1】:变量strC中存放一个字符,判断是字母、数字
If Ucase(strC) >=“A” And Ucase (strC) <=“Z” Then
Label1.Caption= strC + "是字母字符"
ElseIf strC >="0" And strC <="9" Then
Label1. Caption = strC + "是数字字符"
Else
Label1. Caption = strC + “是其他字符"
End If
将以上语句用Select Case语句实现
编辑课件
7
Private Sub Command1_Click()
A = Val(Text1.Text): B = Val(Text2.Text)
C = Val(Text3.Text):
Picture1.Cls
If A = 0 Then
If B = 0 Then
MsgBox "系数为零,请重新输入"
形式
示例
说明
表达式【,表达式】,… Case 2,4,6
表达式To表达式
Case 1 to 5 Case “a” to “n”
Is 关系运算表达式
Case is <30
数值或字符串表达式,表述固 定值之一
用来指定一个范围,较小的 在To前,较大在To后
VBA系列判断之selectcase
VBA系列判断之selectcase爱学习的亲们⼤家好!VBA系列⼜和⼤家见⾯了!本期分享判断语句Select Case如果过程有许多条件,那么使⽤select case语句,这个语句⽐If… Then … Else更加灵活并且更容易理解。
select case语法为:可以在关键字select case和End Select之间放置多个条件;select case执⾏逻辑。
VBA会记住测试表达式的值,测试第⼀个Case⼦句。
如果与第⼀个⼦句的值匹配,VBA就会执⾏语句,接着执⾏后⾯的Case语句,遇到End Select 结束。
如果不匹配VBA就会检查后⾯的Case ⼦句,直到找到匹配的为⽌。
如果找遍了没有,VBA就会跳到Case Else ⼦句并执⾏语句。
Case Else是可选的,如果没有Case Else,VBA就会跳到 End Select后⾯的语句。
但素,使⽤它是⼀个好习惯,以防测试的变量有⼀个没有预料到的值。
我们来看下⾯的 select case过程:⾸先准备⼀张表格,如下图:这张表格将⼈员分为B级、1A到 5A级员⼯,现在需要根据 H 2 单元格的数字,在I 2单元格显⽰对应等级。
当然⽤IF函数可以轻松实现,不过看看⽤VBA的select case怎么完成任务。
参考代码:(如果你会其他写法也是可以的,我们的⽬的达成就可以了!)Sub 员⼯分级()Dim dj As StringSelect Case Cells(2, 'h')Case Is < 1dj = 'B级员⼯'Case Is = 1dj = '1A员⼯'Case Is = 2dj = '2A员⼯'Case Is = 3dj = '3A员⼯'Case Is = 4dj = '4A员⼯'Case Is = 5dj = '5A员⼯'Case Elsedj = '其他'End SelectCells(2, 'I') = djEnd Sub代码窗⼝效果:11个条件简单的if … then是最好选择2如果需要决定执⾏两个操作中的⼀个,使⽤If … Then…Else语句3如果过程需要两个或者多个条件,可以使⽤If … Then…Else或者select case语句4如果过程有许多条件,那么使⽤select case语句,这个语句⽐If …Then… Else更加灵活并且更容易理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Select Case语句也是条件语句之一,而且是功能最强大的条件语句。
它主要用于多条件判断,而且其条件设置灵活、方便,在工作中使用频率极高。
本节介绍Select Case语句的语法及应用案例.
Select Case语句的语法如下:
Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
Select Case语句包括四部分,每部分详细含义如表38-1所示。
在以上语法列表中,省略号代表可以使用多个条件。
只要有一个Case就需要有一个statements-n,表示条件及符合条件时的执行条件。
其中elsestatements表示不符合指定条件时的执行语句,是可选参数。
可以忽略elsestatements,也可以执行一条或者一组语句,为了让程序能够处理一些不可预见的情况,尽量使用elsestatements语句处理不符合条件时该如何回应。
在Select Case的多个参数中,最复杂的是expressionlist-n部分,它有多种表达形式,包括:lExpression——直接声明一个条件值,例如5
lexpression To expression——声明一个条件的范围,例如5-10
lIs comparisonoperator——声明一种比较方式,例如is >5
下面的实例可以展示参数中expressionlist-n部分的多种表达形式。
实例1:多条件时间判断
根据当前的时间判断是上午、中午,还是下午、晚上、午夜。
要求中条件比较多,使IF…Then…需要多层嵌套,而Select Case语句会更简单。
代码如下:___________________________________________________
Sub 时间()
Dim Tim As Byte, msg As String
Tim = Hour(Now)
Select Case Tim
Case 1 To 11
msg = "上午"
Case 12
msg = "中午"
Case 13 To 16
msg = "下午"
Case 17 To 20
msg = "晚上"
Case 23, 24
msg = "午夜"
End Select
MsgBox "现在是:" & msg
End Sub
__________________________________________
以上代码中,“Case 1 To11”表示当前时间在1点到11点,用于限定一个范围;“Case 12”是表示当前时间为12点时返回True,可用于限制一个具体的值,或者多个值。
如果需要罗列多个具体的值,那么需要在每个值之间使用逗号分隔,例如“Case 23,24”。
本例中不存在例外的情况,所以忽略“Case Else”语句。
实例2:根据成绩返回评语
如果成绩小于60则返回“不及格”,60到80之间则返回“良”,80到99则返回“优”,100分则返回“满分”,如果成绩大于100则是输入了错误值。
利用一个Function过程来处理,其代码如下:
________________________________________
Function 成绩(rng As Range)
Select Case rng
Case Is < 0, Is > 100
成绩 = "输入错误"
Case Is < 60
成绩 = "不及格"
Case 60
成绩 = "及格"
Case 60 To 80
成绩 = "良"
Case 81 To 99
成绩 = "优"
Case Else
成绩 = "满分"
End Select
End Function
_____________________________________
以上代码中,Is关键词用于指定一种比较方式,后接Is和Like以外的比较运算符。
本例中需要限制小于0和大于100两个条件,那么Is关键词可以同行中使用两次,中间用逗号分隔,表示罗列两个条件。
“Case Is <60”语句在第一个条件“Case Is < 0, Is > 100”基础上再进行比较,那么成绩“-10”将不符合“<60”这个条件,因为 Select Case在处理多条件时,总是按从上到下的顺序处理。
如果改变本例的条件顺序,可能产生不同的运算结果。
“Case Else”语句表示如果不符合前面的所有条件,则执行它后面的语句,本例中表示成绩为100时返回“满分”。
在工作表中使用该自定义函数后,结果如图38.1所示。
图38.1利用Function返回成绩评语
实例3:以指定格式显示星期
现要求在状态栏显示今日星期,以三种方式供用户选择。
具体代码如下:
Sub 在状态栏显示今日是星期几()
Dim str As String
star:
Select Case InputBox("请指定日期显示方式: " & Chr(10) & "1:周一样式" & Chr(10) _
& "2:星期一样式" & Chr(10) & "3:英文", "日期显示方式", 1)
Case 1
str = "AAA"
Case 2
str = "AAAA"
Case 3
str = "DDDD"
Case Else
MsgBox "录入错误,请重新录入"
GoTo star
End Select
Application.StatusBar = Format(Date, str)
End Sub
________________________________________
本例是“Select Case”对象不确定的实例,它在执行后由用户手动指定对象。
在Select Case语句中,利用Case限制了三个条件,分别为手动录入1、2和3时的日期显示格式。
但用户可能会误输入1到3范围以外的数值,使程序产生错误,那么利用Case Else 语句来限制,且返回到InputBox语句处让用户重新录入,直到数值处于要求的范围内为止,这是最理想的处理方式。
实例4:Select Case嵌套应用计算时间
和IF…Then…一样,Select Case也可以多层嵌套。
本例根据现在的时间判断是白天还是晚上,如果是白天,再进行细分“上午”、“正午”和“下午”。
详细代码如下:
________________________________________
Sub 时间2()
tim = Hour(Now) '获取现在的时间
Select Case tim '条件语句开始,第一层
Case 8 To 18
'如果是白天
Select Case tim '嵌套使用,第二层
Case Is < 12 '如果小于12
MsgBox "上午"
Case 12
'如果等于12
MsgBox "正午"
Case Else
'其他情况,表示13到18之间
MsgBox "下午"
End Select
'结束层条件语句
Case Else
'其他情况,外层
MsgBox "晚上"
'表示1到8之间或19到24之间
End Select。