VBA入门班 11102班学员 _s_bri
本节课是由叶枫老师主讲的,内容是:SUB过程与程序流程控制语句。 一、Sub过程 ★ 概念:一个过程就是一组完成所需操作的VBA代码的组合 ★VBA过程主要包括“Sub过程”和“Funtion过程”两种 Sub过程不可以返回值,Funtion过程可以返回值。 录制宏就是一个简单的Sub过程,使用录制宏功能只能生成Sub过程的代码。 Sub过程的特点: 1.以“Sub过程名()”开头,以“End Sub”结尾。 2.Sub过程一般保存在模块里。 3.Sub过程不返回结果—值。 ● Sub过程的声明: [ Public | Private ] [ Static ] Sub 过程名称([ 参数1,参数2,… ] ) [ 语句块 ] [ Exit Sub ] ′强制退出Sub过程 [ 语句块 ] End Sub 注:Public — 公共 Private — 私有 Static — 保存变量结果 ● 从一个过程执行另一个过程(过程的调用) 1.输入过程名称以及参数,参数用逗号隔开 过程名 [参数1 ,参数2,...] 2.在过程名称以及参数前使用 Call 关键字,参数用括号括起来,并用逗号隔开 Call 过程名([参数1,参数2,...]) 3.利用Application对象的 Run方法 Application.Run 表示过程名称的字符串(或字符串变量)[,参数1 ,参数2 ,...] 二、判断与循环语句 1.选择结构 使用If…Then…Else语句可以实现右图的选择结构。其执行过程为:判断给定的条件P,如果为真,执行A块;否则(为假)执行B块。 A: 单分支选择结构语句If…Then…Else 语句格式: If 条件 Then 语句1 [ Else 语句2 ] End If 说明: ⑴.“条件”可以是关系表达式、逻辑表达式或数值表达式。对于数值表达式,VBA视零为False,而将所有非零值解释为True。 ⑵.当条件为真时,执行 Then 与Else 之间的语句块1;重条件为假时,执行 Else 后的语句块2。 ⑶.如果没有 Else 部分,则将语句块2视为空操作,即不作任何处理的操作块。 我的个人练习1 计算分段函数 y=x+1 (x>=0) y=1-2x (x<0) 分析:该题列出了两个条件x≥0和x<0,在进行VBA程序设计时,只需要选择其中的任意一个。在Excel VBE 窗口新建一模块,输入代码1,然后在Excel工作表建立一窗体按钮,给指定宏为:计算. Sub 计算() Dim x As Single, y As Single x = Cells(2, "b") If x >= 0 Then y = 1 + x Else y = 1 - 2 * x End If Cells(3, "b") = y End Sub B、多分支选择结构If…Then…ElseIf 语法格式 If 条件1 Then 语句块1 [ ElseIf 条件2 Then 语句块2 …] [ Else 语句块 n+1 ] End If 用途:当需解决的事情有多个走向时,使用的一种语句。 说明: ⑴.Else 和 ElseIf 子句是可选部分,且可以有任意多个 ElseIf子句。 ⑵.程序运行时,先测试“条件1”,如果为真,则执行 语句块1,如果为假,则依次测试每个 ElseIf 部分的条件表达式,当某个 ElseIf 的条件为真时,则执行该 语句块。如果所有条件都为假,则执行 Else 部分的语句块。 ⑶.当某个条件为真并执行完与之相关的语句块后,程序将不再判断其后的条件,而直接执行 End If后面的语句。 我的个人练习2 某超市五一节期间进行促销,优惠方案如下: ⑴购物在80元(含)以上者,按九五折优惠 ⑵购物在150元以上者,按九折优惠 ⑶购物在300元以上者,按八五折优惠 ⑷购物在500元以上者,按八折优惠 Sub 支付()
C:多分支选择结构Select Case 语法格式 Select Case 测试条件 Case 表达式1 语句块1 [ Case 表达式2 语句块2 …] [ Case Else 其他语句块] End Select 说明: ⑴“测试条件”为必要参数,一般为数值表达式或字符串表达式。 ⑵Case 子句中的表达式可以是以下3种情形之一: ●表达式:如,Case a+b、Case “Excel home”。 ●表达式1 To 表达式2:Case 100 To 200、Case “a” To “z”。这种形式表示的范围包含表达式1和表达式2的值,且表达式1的值小于表达式2。 ●Is 关系运算表达式:如,Case Is >=80。 ⑶可以将上述形式组合起来使用,表达式之间须用逗号分隔。如,Case 5,14,30 To 60,80、Case “A” To “z”,它们之间的关系是“逻辑或”。 个人练习3 题目仍是五一超市优惠活动的题。 Sub 优惠()
2、循环结构 A.For…Next 语句 For…Next语句用来实现循环次数已知的循环结构。 语法格式 For 循环变量=初值 To 终值 [Step 步长] 语句块1 [Exit For] 语句块2 Next [循环变量] 说明: ⑴“循环变量”为必要参数,是一个用做循环计数器的数值型变量。 ⑵“步长”为循环变量的增量,可以是正数或负数,默认值为1。当步长为正数时,初值应小于终值;否则,初值应大于终值。步长值绝对不可为0!否则出现死循环。 ⑶每次循环后都会根据步长自动改变循环变量的值,并根据步长的正负判断循环变量的当前值是否在终值内,若是则执行循环体,否则结束循环。 ⑷在For和Next之间可以存在一个或多个Exit For语句,遇到该语句时表示退出循环,并执行Next之后的语句。Exit For语句一般用在条件判断语句(如If…Then)中,即当满足给定条件时退出循环。 (5)循环次数=Int((终值-初值)/2+1) 个人练习4 在B3:B12区域输出3位能被15整除的前10个正整数偶数。 分析:能被15整除的偶数,条件形式为 n Mod 15 And n Mod 2
B:For Each…Next 循环语句 当需要在一个集合的所有对象或者一个数组的所有元素之间循环时,使用该语句。 语法格式 For Each 元素变量 In 对象集合 语句块 [Exit For] 语句块 Next 元素变量 示例请看http://t./thread-2114-1-1.html 我上交的作业
C、Do While 循环语句 根据给定条件决定是否执行循环体内的语句。 1、开头判断循环条件 语法格式 Do While 条件 循环体 [ Exit Do] 循环体 Loop 2、结尾判断循环条件 语法格式 Do 循环体 [Exit Do] 循环体 Loop [ While 循环条件 ] 注:一般使用开头判断循环条件。 示例请看http://t./thread-2114-1-1.html 我上交的作业. D、Do Until 循环语句 执行循环体直到条件成立退出循环 1、开头判断循环条件 语法格式 Do [ Until 循环条件 ] 循环体 [ Exit Do ] 循环体 Loop 2、结尾判断循环条件 语法格式 Do 循环体 [Exit Do] 循环体 Loop [ Until 循环条件 ] 注:一般使用开头判断循环条件。 |
|