资料摘要
条件判断语句一、IIf函数(三个参数都为必选参数,这有别于IF函数)语法:IIf(expr,truepart,falsepart)部分描述必要参数。用来判断真伪的表达式。必要参数。如果expr为True,则返回这部分的值或表达式。必要参数。如果expr为False,则返回这部分的值或表达式。expr
- 资料类型:教学教案文档
- 所属课文:1.2.2 条件语句
- 支持正文预览,并提供同课文课件入口
- 浏览次数
- 43
- 下载次数
- 0
- 更新时间
- 2018-07-04 10:06:00
- 来源学校
- 学校:茶陵县第二中学
1.2.2 条件语句优质公开课教案
未知
摘要:暂无摘要
关键词:1.2.2 条件语句优质公开课教案
正文
条件判断语句
一、IIf函数(三个参数都为必选参数,这有别于IF函数)
语法:IIf(expr,
truepart,
falsepart)
部分
描述
必要参数。用来判断真伪的表达式。
必要参数。如果
expr
为
True,则返回这部分的值或表达式。
必要参数。如果
expr
为
False,则返回这部分的值或表达式。
expr
truepart
falsepart
说明
由于 IIf 会计算
truepart 和
falsepart,虽然它只返回其中的一个。因此要注意到这个副作用。例如,如果
falsepart 产生一个被零除错误,那么程序就会发生错误,即使
expr
为
True。
例1:
Rem 如果A1单元格大于或等于60,则B1单元格显示“及格”,否则为“不及格”
[b1] = IIf([a1] >= 60, "及格", "不及格")
例2:
Sub 根据月份判断季度() Dim Months As Byte '声明变量
Star: '设置一个标签
'弹出对话框让用户录入月份,默认为当前月份
Months = Application.InputBox("请输入月份,只能是数字", "月份", Month(Date), , , , , 1) '如果录入的数值小于1或者大于12则返回标签Star处继续执行
If Months < 1 Or Months > 12 Then MsgBox "只能在1到12之间": GoTo Star '四个IIF嵌套运用,其中每个IIF的第一参数使用双条件,在双条件时需要用And连接
MsgBox IIf(Months > 1 And Months < 4, "一季度", IIf(Months > 3 And Months < 7, "二季度", IIf(Months > 6 _ And Months < 10, "三季度", IIf(Months > 9 And Months < 1, "四季度", "录入错误")))) End Sub 二、单行形式If...Then 在单行形式中,按照
If...Then 判断的结果也可以执行多条语句。所有语句必须在同一行上并且以冒号分开,如下面语句所示:
例1:
If A > 10 Then A = A + 1 : B = B + A : C = C + B 例2:'声明工作簿打印事件
Private Sub Workbook_BeforePrint(Cancel As Boolean) '如果工作表名不等于“总表”就禁止打印
If ActiveSheet.Name <> "总表" Then MsgBox "禁止打印": Cancel = True’
参数Cancel用于控制是否可以打印
End Sub 例3:
'声明工作簿开启事件
Private Sub Workbook_Open() '如果现在的小时数大于等于8,而且小于等于18则退出过程
If Hour(Now) >= 8 And Hour(Now) <= 18 Then Exit Sub '退出Excel程序
Application.Quit End Sub
例4:
Sub 工作簿另存() '如果A1是数字,而且非空,那么工作簿保存为A1的值
'IsNumeric判断单元格值是否为数值
'SaveAs另存为
'FileFormat文件类型
'xlOpenXMLWorkbookMacroEnabled启动宏的工作簿
If VBA.IsNumeric([a1]) And Len([a1]) > 0 Then ThisWorkbook.SaveAs "C:\" & [a1], FileFormat:=xlOpenXMLWorkbookMacroEnabled End Sub 三、If...Then...Else 语句
语法有两种格式,一种是语句在同一行中,其不需要End If作为结束语;另一种是多行,则End If必须要成结出现。
If
condition
Then [statements][Else
elsestatements] 或者,可以使用块形式的语法:
If
condition
Then
[statements] [ElseIf
condition-n
Then
[elseifstatements] ...
[Else
[elsestatements]] End If
部分
描述
必要参数。一个或多个具有下面两种类型的表达式:
数值表达式或字符串表达式,其运算结果为
True
或
False。如果
condition
为
Null,则
condition
会视为
False。
TypeOf
objectname
Is
objecttype
形式的表达式。其中的
objectname
是任何对象的引用,而
objecttype
则是任何有效的对象类型。如果
objectname
是
objecttype
condition
所指定的一种对象类型,则表达式为
True,否则为False。
statements
在块形式中是可选参数;但是在单行形式中,且没有 Else 子句时,则为必要参数。一条或多条以冒号分开的语句,它们在
condition 为
True 时执行。
可选参数。与
condition
同。
condition-n
elseifstatements
可选参数。一条或多条语句,它们在相关的
condition-n 为
True 时执行。
elsestatements
可选参数。一条或多条语句,它们在前面的
condition 或
condition-n 都不为
True 时执行。
注意
在单行形式中,按照
If...Then 判断的结果也可以执行多条语句。所有语句必须在同一行上并且以冒号分开,如下面语句所示:
If A > 10 Then A = A + 1 : B = B + A : C = C + B 在块形式中,If
语句必须是第一行语句。其中的
Else、
ElseIf,和
End If
部分可以只在之前加上行号或行标签。If 块必须以一个
End If
语句结束。
要决定某个语句是否为一个
If 块,可检查
Then
关键字之后是什么。如果在
Then 同一行之后,还有其它非注释的内容,则此语句就是单行形式的
If
语句。
Else
和
ElseIf 子句都是可选的。在
If
块中,可以放置任意多个
ElseIf
子句,但是都必须在
Else
子句之前。If 块也可以是嵌套的。
当程序运行到一个
If
块(第二种语法)时,condition 将被测试。如果
condition为
True,则在
Then
之后的语句会被执行。如果
condition 为
False,则每个
ElseIf
部分的条件式(如果有的话)会依次计算并加以测试。如果找到某个为
True 的条件时,则其紧接在相关的
Then 之后的语句会被执行。如果没有一个
ElseIf
条件式为
True(或是根本就没有
ElseIf
子句),则程序会执行
Else 部分的语句。而在执行完
Then 或
Else 之后的语句后,会从
End If
之后的语句继续执行。
提示
根据单一表达式来执行多种可能的动作时,Select Case 更为有用。不过,TypeOf objectname Is objecttype 子句不能在 Select Case 语句中使用。
注意 TypeOf
不能与诸如 Long、Integer 以及其他不是 Object 的固定数据类型一起使用。
四、If...Then...Else 语句嵌套
If
condition
Then
[statements] [ElseIf
condition-n
Then
[elseifstatements]
[ElseIf
condition-n
Then
[elseifstatements] ...(省略号代表可以添加更多的条件和更多的语句)
[Else
[elsestatements]] End If
或
If
condition
Then
If
condition-n
Then
[elseifstatements]
Else
[elsestatements] End If Else
[elsestatements] End If
四、Select Case 语句
根据表达式的值,来决定执行几组语句中的其中之一。
语法:
Select Case
testexpression
[Case
expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]] End Select
部分 描述
必要参数。任何数值表达式或字符串表达式。
testexpression
expressionlist-n
如果有
Case 出现,则为必要参数。其形式为
expression,expression
To
expression,Is
comparisonoperator
expression的一个或多个组成的分界列表。To
关键字可用来指定一个数值范围。如果使用
To
关键字,则较小的数值要出现在
To
之前。使用
Is
关键字时,则可以配合比较运算符(除
Is
和
Like 之外)来指定一个数值范围。如果没有提供,则
Is
关键字会被自动插入。
statements-n
可选参数。一条或多条语句,当
testexpression 匹配expressionlist-n中的任何部分时执行。
可选参数。一条或多条语句,当
testexpression 不匹配
Case
子句的任何部分时执行。
elsestatements
说明
如果
testexpression
匹配某个
Case
expressionlist
表达式,
则在
Case
子句之后,直到下一个
Case
子句的
statements 会被执行;如果是最后一个子句,则会执行到
End Select。然后控制权会转移到
End Select
之后的语句。如果
testexpression 匹配一个以上的
Case
子句中的
expressionlist
表达式,则只有第一个匹配后面的语句会被执行。
Case Else
子句用于指明
elsestatements,当
testexpression 和所有的
Case 子句中的
expressionlist
都不匹配时,则会执行这些语句。虽然不是必要的,但是在 Select Case 区块中,最好还是加上
Case Else
语句来处理不可预见的
testexpression
值。如果没有
Case
expressionlist
匹配
testexpression,而且也没有
Case Else
语句,则程序会从
End Select
之后的语句继续执行。
可以在每个
Case
子句中使用多重表达式或使用范围,例如,下面的语句是正确的:
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber 注意
Is
比较运算符和使用在
Select Case
语句中的
Is
关键字并不相同。
也可以针对字符串指定范围和多重表达式。在下面的例子中,Case
所匹配的字符串为:等于
everything、按英文字母顺序落入从
nuts
到
soup
之间的字符串、以及
TestItem
所代表的当前值。
Case "everything", "nuts" To "soup", TestItem Select Case 语句也可以是嵌套的。但每个嵌套的
Select Case
语句必须要有相应的
End Select 语句。
例:
Function 成绩划分等级(rng As Range) Select Case rng Case Is < 0, Is > 100 ' is关键词可以同行中使用两次,中间用逗号隔开,表示两个条件
成绩 = "输入错误" Case Is < 60 成绩 = "不及格" Case 60 成绩 = "及格" Case 60 To 80 成绩 = "良" Case 81 To 99
成绩 = "优" Case Else '如果不符合前面的条件,则执行本语句
成绩 = "满分" End Select End Function
嵌套例:
Sub 嵌套case() Dim Tim As Byte, msg As String Tim = Hour(Now) Select Case Tim Case Is > 7, Is <= 24 Select Case Tim Case 7 To 11 msg = "上午" Case Is < 12 msg = "上午" Case 12 msg = "中午" Case Is < 13 msg = "下午" Case 13 To 17
msg = "下午" Case Is < 18 msg = "下午" Case 18 To 23 msg = "晚上" Case Is < 24 msg = "晚上" Case Is = 24 msg = "午夜" End Select Case Else msg = "凌晨" End Select MsgBox msg End Sub
IF与Select比较
两者可以实现多条件判断,各有优势。
IF的优势在于条件中可以随时使用and和or运算符设置条件。
Select的优势在于速度快于IF。
五、Choose 函数
从参数列表中选择并返回一个值。
语法
Choose(index, choice-1[, choice-2, ... [, choice-n]]) Choose
函数的语法具有以下几个部分:
部分
描述
必要参数,数值表达式或字段,它的运算结果是一个数值,且界于 1 和可选择的项目数之间。
必要参数,Variant 表达式,包含可选择项目的其中之一。
index
choice
说明
Choose 会根据
index 的值来返回选择项列表中的某个值。如果
index 是 1,则
Choose
会返回列表中的第 1 个选择项。如果
index 是 2,则会返回列表中的第 2 个选择项,以此类推。
可以使用
Choose 来查阅一个列表中的项目。例如,如果
index 所指定的值为 3,而
choice-1
= "one"、choice-2
= "two"、且
choice-3
= "three",那么
Choose
将返回
"three"。当
index 代表一选项组中的值时,则这项功能将会特别有用。
即使它只返回一个选项值,Choose 仍然会计算列表中的每个选择项。所以应该注意到这项副作用。例如,当在每个选择项表达式中使用了
MsgBox
函数作为其中的一部分时,每
计算一个选择项,就会显示一次消息框。
当
index小于 1 或大于列出的选择项数目时,Choose 函数返回
Null。
如果
index
不是整数,则会先四舍五入为与其最接近的整数。
例:
Sub 设置单元格颜色1() 'Choose法
Dim 颜色 As Byte 颜色
= Application.InputBox("请选择颜色:" & Chr(10) & "1:红色" & " 2:蓝色" & Chr(10) & _ "3:灰色" & " 4:棕色" & Chr(10) & "5:绿色", "指定颜色", 1, , , , , 1) Range("A1").Interior.ColorIndex = Choose(颜色, 7, 5, 15, 40, 4) End Sub
Sub 设置单元格颜色2() 'IIF法
Dim 颜色 As Byte 颜色
= Application.InputBox("请选择颜色:" & Chr(10) & "1:红色" & " 2:蓝色" & Chr(10) & _ "3:灰色" & " 4:棕色" & Chr(10) & "5:绿色", "指定颜色", 1, , , , , 1)
Range("A1").Interior.ColorIndex = IIf(颜色 = 1, 7, IIf(颜色 = 2, 5, IIf(颜色 = 3, 15, IIf(颜色 = 4, 40, IIf(颜色 = 5, 4, xlNone))))) End Sub
Sub 设置单元格颜色3() 'IF...Then...Else法
Dim 颜色 As Byte 颜色
= Application.InputBox("请选择颜色:" & Chr(10) & "1:红色" & " 2:蓝色" & Chr(10) & _ "3:灰色" & " 4:棕色" & Chr(10) & "5:绿色", "指定颜色", 1, , , , , 1) If 颜色 = 1 Then Range("A1").Interior.ColorIndex = 7 ElseIf 颜色 = 2 Then Range("A1").Interior.ColorIndex = 5 ElseIf 颜色 = 3 Then Range("A1").Interior.ColorIndex = 15 ElseIf 颜色 = 4 Then Range("A1").Interior.ColorIndex = 40 ElseIf 颜色 = 5 Then Range("A1").Interior.ColorIndex = 4 End If
End Sub Sub 设置单元格颜色4() 'Select Case法
Dim 颜色 As Byte 颜色
= Application.InputBox("请选择颜色:" & Chr(10) & "1:红色" & " 2:蓝色" & Chr(10) & _ "3:灰色" & " 4:棕色" & Chr(10) & "5:绿色", "定颜色", 1, , , , , 1) Select Case 颜色
Case 1 Range("A1").Interior.ColorIndex = 7 Case 2 Range("A1").Interior.ColorIndex = 5 Case 3 Range("A1").Interior.ColorIndex = 15 Case 4 Range("A1").Interior.ColorIndex = 40 Case 5 Range("A1").Interior.ColorIndex = 4 End Select End Sub 指
文档信息
- 格式: PDF
- 页数: 未知页
- 字数: 未知
- 上传时间: 2018-07-04 10:06:00
- 下载次数: 0
- 浏览次数: 43
- 积分: 1
- 收藏: 0
作者信息
5ygggwenku_147288
来自:学校:茶陵县第二中学
配套课件
相关文档
下载提示
下载文档后,您可以获得:
- 完整无水印文档
- 高清阅读体验
- 随时保存查看
- 支持打印下载
关于本教案的常见问题
Q:1.2.2 条件语句优质公开课教案是什么类型的资料?
A:这是一份教学教案文档,可用于备课、课堂讲解与课后复习,支持在线预览正文内容。
Q:这份教案对应哪篇课文?
A:对应课文《1.2.2 条件语句》,可从面包屑进入课文目录查看同课其他资料。
Q:如何找到配套课件?
A:页面提供「配套课件/同课文课件」入口;也可进入课文详情页同时查看教案与课件列表。