资料摘要

条件判断语句一、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 条件语句优质公开课教案

未知
2018-07-04 10:06:00
43
0
PDF / 未知页
未知字
配套课件
积分:1
第 1 页,共 1 页

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 指

第 1 页,共 1 页

文档信息

  • 格式: 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:页面提供「配套课件/同课文课件」入口;也可进入课文详情页同时查看教案与课件列表。