模块教学讲解教学课件

上传人:仙*** 文档编号:241511252 上传时间:2024-06-30 格式:PPT 页数:83 大小:869.50KB
返回 下载 相关 举报
模块教学讲解教学课件_第1页
第1页 / 共83页
模块教学讲解教学课件_第2页
第2页 / 共83页
模块教学讲解教学课件_第3页
第3页 / 共83页
点击查看更多>>
资源描述
模块模块ppt课件课件11、用道德的示范来造就一个人,显然比用法律来约束他更有价值。希腊12、法律是无私的,对谁都一视同仁。在每件事上,她都不徇私情。托马斯13、公正的法律限制不了好的自由,因为好人不会去做法律不允许的事情。弗劳德14、法律是为了保护无辜而制定的。爱略特15、像房子一样,法律和法律都是相互依存的。伯克模块与过程模块与过程n模模块块实实际际上上放放置置VBA代代码码的的容容器器,一一个个模模块块包包含含一一个个声声明明区区域域(声声明明模模块块所所使使用用的的变变量量、常常量量、自自定定义义类类型型),包含一个或多个包含一个或多个子过程或函数子过程或函数过程。过程。nSub过程(又称为子过程),其格式如下:过程(又称为子过程),其格式如下:Sub 过程名程序代码End Sub调用子过程用Call过程名nFunction过程(又称函数过程),其格式如下:过程(又称函数过程),其格式如下:Function过程名程序代码End Functionn函数过程和子函数可以返回一个值,所以在表达式中可函数过程和子函数可以返回一个值,所以在表达式中可将其当作变量使用,将其当作变量使用,二、二、VBA程序基础程序基础 1.面向对象编程基础面向对象编程基础2.VBA环境的进入环境的进入3.模块和过程的创建模块和过程的创建 4.数据类型、常量、变量与表达式数据类型、常量、变量与表达式 5.VBA的常用内部函数的常用内部函数 6.数据的输入与输出数据的输入与输出 面向对象程序设计的基本概念面向对象程序设计的基本概念1、对象和集合、对象和集合一个一个对象对象就是一个就是一个实体实体。如:一辆自行车。如:一辆自行车对象的属性:即,自行车的颜色和尺寸对象的属性:即,自行车的颜色和尺寸引用方法:对象引用方法:对象.属性属性对象的方法:即,对象可以执行的行为,如自行车对象的方法:即,对象可以执行的行为,如自行车行走。行走。引用方法:对象引用方法:对象.方法方法ACCESS中除提供了数据库的中除提供了数据库的7个对象外,还提供个对象外,还提供了一个了一个DoCmd对象,它主要用来在对象,它主要用来在VBA编程中实编程中实现对现对ACCESS的操作。如:的操作。如:DoCmd.OpenReport“教师信息教师信息”面向对象程序设计的基本概念面向对象程序设计的基本概念(续)2、事件和事件过程、事件和事件过程事件是事件是Access窗体或报表及其上的控件等对象可以窗体或报表及其上的控件等对象可以“辨识辨识”的动作。如:单击鼠标,打开窗体和报表等。的动作。如:单击鼠标,打开窗体和报表等。在在ACCESS数据库系统中可以通过两种方式来处理窗体、数据库系统中可以通过两种方式来处理窗体、报表或控件的事件响应:使用宏对象和编写报表或控件的事件响应:使用宏对象和编写VBA代码,代码,完成指定动作,这样的代码过程,也称为事件响应过程。完成指定动作,这样的代码过程,也称为事件响应过程。n例:例:单击单击“test”按钮,弹出下图所示对话框!按钮,弹出下图所示对话框!进入进入VBA编程环境编程环境VBE1.打开窗体或报表,单击工具栏上打开窗体或报表,单击工具栏上“代码代码”工具按工具按钮进入。钮进入。2.定位到控件上,打开属性窗口,选中某个事件,定位到控件上,打开属性窗口,选中某个事件,设置属性为设置属性为“事件过程事件过程”,点击,点击“”按钮后选择按钮后选择“代码生成器代码生成器”进入。进入。3.新建模块。新建模块。4.打开一个已有的标准模块。打开一个已有的标准模块。5.在在数数据据库库对对象象窗窗体体中中,单单击击“工工具具”菜菜单单中中“宏宏”级级联联菜菜单单的的“Visual Basic 编编辑辑器器”选选项项即即可可进进入。入。提提示示:进进入入VBE环环境境后后,可可以以使使用用ALT+F11组组合合键键在在数数据据库窗口和库窗口和VBE之间切换。之间切换。模块和过程的创建模块和过程的创建1.新建模块新建模块模块由过程组成,而过程由程序员编写程序形成。模块由过程组成,而过程由程序员编写程序形成。例例1 创建一个名为创建一个名为“模块入门模块入门”的新模块的新模块 保存为保存为“模块入门模块入门”模块和过程的创建(续)模块和过程的创建(续)2.过程过程n过程由过程由VBA语句组成,是一段相对独立的代码。语句组成,是一段相对独立的代码。n过程与过程之间相互隔离,系统不会从一个过程过程与过程之间相互隔离,系统不会从一个过程自动执行到另一个过程,但一个过程可以通过调自动执行到另一个过程,但一个过程可以通过调用执行另一个过程。用执行另一个过程。n过程不是过程不是Access的一个独立对象,不能单独保的一个独立对象,不能单独保存,只能存在于模块中。存,只能存在于模块中。n过程以过程以Sub()的形式开头(圆括号内放的形式开头(圆括号内放置该过程被调用时需接受的参数),以置该过程被调用时需接受的参数),以End Sub结束。结束。模块和过程的创建(续)模块和过程的创建(续)3.新建过程新建过程 例例2 在在“模块入门模块入门”模块中创建一个模块中创建一个Hello过程过程 用户输入用户输入 执行过程执行过程 双击双击 VBA程序的语句程序的语句定义(声明)语句定义(声明)语句执行语句执行语句条件结构条件结构顺序结构顺序结构循环结构循环结构VBA语句语句VBA程序的语句(续)程序的语句(续)一、程序语句书写一、程序语句书写1、语句书写规定、语句书写规定 可以用续行符可以用续行符“下划线下划线”_将语句连续写在下一行。将语句连续写在下一行。可以使用可以使用“冒号冒号”:将几个语句分隔写在一行中。将几个语句分隔写在一行中。当输入一行语句并按下回车后,该行代码若红色当输入一行语句并按下回车后,该行代码若红色显示,表示有误。显示,表示有误。提示:模块的内容是由提示:模块的内容是由VBA语言编写的代码。语言编写的代码。2、注释语句(两种方式)、注释语句(两种方式):rem docmd.openreport “学生学生”docmd.openreport “学生学生”VBA程序的语句(续)程序的语句(续)二、声明语句二、声明语句声明语句用于命名和定义常量、变量、数组声明语句用于命名和定义常量、变量、数组和过程。和过程。如:如:const PI=3.14159 Dim I as integerVBA程序的语句(续)程序的语句(续)三、赋值语句三、赋值语句1、let 变量名变量名=值或表达式值或表达式(将右边的值赋给左边将右边的值赋给左边)例如:例如:message=“hello”2、Dim txtage as integer Txtage=21例如:例如:Sub test()Dim a As Integera=21.3MsgBox aEnd SubVBA程序的语句(续)程序的语句(续)四、标号或四、标号或goto 语句语句转到某一条语句上。转到某一条语句上。如:如:goto AA AA:建议避免使用标号,标号一般系统用在出错处理时。建议避免使用标号,标号一般系统用在出错处理时。如如:on error goto 标号标号 跳转到标号处继续执行跳转到标号处继续执行on error goto 0 关闭错误处理关闭错误处理on error resume next 忽略错误继续执行忽略错误继续执行 数据类型、常量、变量与表达式数据类型、常量、变量与表达式 1.VBA的数据类型的数据类型 数据类型、常量、变量与表达式(续)数据类型、常量、变量与表达式(续)2.标识符标识符 n标识符:程序中常量、变量、过程等对象的名字标识符:程序中常量、变量、过程等对象的名字nVBA标识符规定:标识符规定:第一个字符必须是字母第一个字符必须是字母包含的字符数不超过包含的字符数不超过255个个不得与不得与VBA的关键字同名,如不能使用的关键字同名,如不能使用Sub、For等等不能使用下列字符:不能使用下列字符:!&$#(空格)(空格)从增强程序可读性角度出发,标识符应使人望文生义,从增强程序可读性角度出发,标识符应使人望文生义,了解其代表的内涵了解其代表的内涵数据类型、常量、变量与表达式数据类型、常量、变量与表达式(续)(续)3.常量常量 n常量:常量:VBA在运行时其值始终保持不变的量在运行时其值始终保持不变的量n字符串常量放在一对字符串常量放在一对内,日期内,日期/时间型常量放在时间型常量放在一对一对#内。如内。如中国中国、#9/1/2005#等。等。n符号常量:用标识符保存一个常量值符号常量:用标识符保存一个常量值n使用使用Const语句定义符号常量,如语句定义符号常量,如 Const Pai=3.141569 Const TermBeginDate=#9/1/2005#数据类型、常量、变量与表达式(续)数据类型、常量、变量与表达式(续)4.变量变量 n变量:程序运行期间值可以改变的量变量:程序运行期间值可以改变的量 n变量在使用前应该用变量在使用前应该用Dim语句进行声明语句进行声明Dim As,As,.Dim StudentName As StringDim Grade As Integer,AvgGrade As SingleDim Passed As Boolean,ExamDate As Daten默认情况下,变量可以不经声明即可使用,该变默认情况下,变量可以不经声明即可使用,该变量被自动声明为量被自动声明为Variant类型类型(变体型变体型)数据类型、常量、变量与表达式(续)数据类型、常量、变量与表达式(续)强制实现变量先定义后使用:在代码窗口中强制实现变量先定义后使用:在代码窗口中执行执行“工具工具”/“选项选项”命令命令 此此后后新新创创建建的的模模块块中中,窗窗口口顶端自动出现:顶端自动出现:Option Explicit 数据类型、常量、变量与表达式(续)数据类型、常量、变量与表达式(续)5.运算符运算符 n算术运算符:算术运算符:-(取负取负)、*、/、Mod、+、-n关系运算符:关系运算符:、=、=、=、(不等于不等于)其值为一个布尔量其值为一个布尔量(True或或False)n连接运算符:连接运算符:+、&其中,其中,“+”用于连接字符串,用于连接字符串,“&”可将几个不同类型的值可将几个不同类型的值连接成一个字符串。连接成一个字符串。n逻辑运算符:逻辑运算符:Not、And、Or、Xor、Eqv、Imp 数据类型、常量、变量与表达式数据类型、常量、变量与表达式(续)(续)例例3输出当天日期及距输出当天日期及距2008年元旦的天数年元旦的天数在在“模块入门模块入门”模块中添加如下模块中添加如下Today()过程:过程:运行结果运行结果 Sub Today()MsgBox 今天的日期是今天的日期是&Date&,距,距2008年年1月月1日还有日还有&(#1/1/2008#-Date)&天天End Sub数据类型、常量、变量与表达式数据类型、常量、变量与表达式(续)(续)6.表达式表达式n表达式:用运算符将常量、变量、函数等连接起表达式:用运算符将常量、变量、函数等连接起来的式子,书写在一行上。来的式子,书写在一行上。n n表达式可分为:表达式可分为:算术表达式,如算术表达式,如 Count=Count+1 关系表达式,如关系表达式,如 C20逻辑表达式,如逻辑表达式,如 Age=60 (-b+Sqr(b2-4*a*c)/(2*a)VBA的常用内部函数的常用内部函数 n内部函数内部函数(标准函数标准函数)的调用格式:的调用格式:函数名函数名(参数参数)例如,求例如,求Sin(30)VBA表达式为:表达式为:Sin(3.14*30/180)n根据函数返回值的类型,可以将函数分为:根据函数返回值的类型,可以将函数分为:数值型函数数值型函数字符串函数字符串函数日期日期/时间函数时间函数类型转换函数类型转换函数VBA的常用内部函数的常用内部函数(续)(续)例例4 求求8x2-10 x-75=0的两个实根的两个实根运行结果运行结果数据输入、输出数据输入、输出1.数据输入函数数据输入函数 InputBox()InputBox(Prompt,Title,Default,Xpos,Ypos)说明:说明:Prompt参数必不可少,用于显示输入提示文本参数必不可少,用于显示输入提示文本Title参数用于指定对话框标题,缺省标题为参数用于指定对话框标题,缺省标题为 “Microsoft office Acces”Default参数为对话框提供一个默认值参数为对话框提供一个默认值 Xpos、Ypos参数决定对话框出现在屏幕上的位置,参数决定对话框出现在屏幕上的位置,缺省时出现在屏幕中央缺省时出现在屏幕中央 数据输入、输出数据输入、输出(续)(续)例例5 默认为默认为18岁岁 数据输入、输出数据输入、输出(续)(续)nInputBox()函数返回值的类型由接受返回函数返回值的类型由接受返回值变量的类型决定。值变量的类型决定。例如,例如,D=InputBox(测试测试,1)D为整型变量时,为整型变量时,D输出的是默认数值输出的是默认数值1;D为日期型变量时,为日期型变量时,D输出的是默认日期输出的是默认日期 1899-12-31D为为Boolean变量时,变量时,D输出的默认值为输出的默认值为True数据输入、输出数据输入、输出(续)(续)2.MsgBox()函数函数 MsgBox(Prompt,Buttons,Title)说明:说明:Prompt参数必不可少,用于输出结果或提示性文本参数必不可少,用于输出结果或提示性文本Buttons是一个或一组按钮,缺省为一个是一个或一组按钮,缺省为一个“确定确定”按钮按钮 Title参数用于指定消息对话框标题,缺省为参数用于指定消息对话框标题,缺省为 “Microsoft office Acces”数据输入、输出数据输入、输出(续)(续)例例6 运行运行 数据输入、输出数据输入、输出(续)(续)3.Debug窗口(窗口(“立即窗口立即窗口”)例例7 视图视图数据的输入、输出数据的输入、输出 例例8 运行结果运行结果 调试工具的使用调试工具的使用继续继续中断中断重新设置重新设置切换断点切换断点逐语句逐语句逐过程逐过程快速监视快速监视监视窗口监视窗口立即窗口立即窗口本地窗口本地窗口跳出跳出n“立即立即”窗口:用来检测有问题的或新编写的代码。窗口:用来检测有问题的或新编写的代码。一般使用一般使用 Debug.Print 变量名来观察变量值。变量名来观察变量值。n“监视监视”窗口:用来显示被监视的表达式值。可监窗口:用来显示被监视的表达式值。可监视多个表达式。必须先添加视多个表达式。必须先添加“监视表达式监视表达式”和和“监监视类型视类型”。n“本地本地”窗口:用来显示当前过程中窗口:用来显示当前过程中所有变量所有变量的值。的值。当程序的执行从一个过程切换到另一个过程时,当程序的执行从一个过程切换到另一个过程时,“本地本地”窗口的内容会发生改变,它只反映当前过窗口的内容会发生改变,它只反映当前过程中可用的变量。程中可用的变量。8.3 选择语句选择语句 8.3.1 IfThen语句语句 8.3.2 IfThenElse语句语句 8.3.3 块状选择语句块状选择语句 8.3.4 选择语句嵌套选择语句嵌套 8.3.5 Select Case语句语句8.3.1 IfThen语句语句 n格式:格式:If Then n关系表达式或逻辑表达式成立时执行关系表达式或逻辑表达式成立时执行Then后的后的语句,否则直接执行语句,否则直接执行If的下一条语句。的下一条语句。n可以一条语句,也可以是若干条用冒号可以一条语句,也可以是若干条用冒号“:”隔开的隔开的VBA语句组。语句组。8.3.1 IfThen语句语句(续续)【例例例例】如如如如果果果果学学学学生生生生的的的的分分分分数数数数在在在在60606060分分分分以以以以上上上上,定定定定为为为为“及及及及格格格格”,”,”,”,否则定为否则定为否则定为否则定为“不及格不及格不及格不及格”。Sub stumark1()Dim Mark As Integer Mark=Val(InputBox(请输入学生成绩)If Mark=60 Then MsgBox(及格)Else MsgBox(不及格)End IfEnd sub8.3.1 IfThen语句语句(续)(续)例例9随机出一道两位数加法题让小学生回答随机出一道两位数加法题让小学生回答 Sub test()Dim A As Integer,B As Integer,Sum As Integer Randomize Timer A=10+Rnd*89:B=10+Rnd*89 Sum=InputBox(A&+&B&=?,两位数加法两位数加法)If Sum=A+B Then MsgBox 答案正确!答案正确!If Sum A+B Then MsgBox 答错了!正确答案是答错了!正确答案是&A+BEnd Sub判断变量判断变量X是否为不小于是否为不小于10的整数:的整数:If X=10 and X=Int(X)Then.8.3.2 IfThenElse语句语句 n格式:格式:If Then Else nIf后的表达式成立时执行后的表达式成立时执行Then后的语句,不成立后的语句,不成立时执行时执行Else后的语句;然后程序继续执行后的语句;然后程序继续执行If后的后的其他语句。其他语句。If Sum=A+B Then MsgBox 答案正确!答案正确!If Sum A+B Then MsgBox 答错了!正确答案是答错了!正确答案是&A+B If Sum=A+B Then MsgBox 答案正确!答案正确!Else MsgBox 答错答错了!正确答案是了!正确答案是&A+B等等价价8.3.2 IfThenElse语句语句 例例10 Sub Passed()Dim Grade As Integer Grade=InputBox(请输入考试分数:请输入考试分数:)If Grade=60 Then MsgBox(合格合格)Else MsgBox(不合格不合格)End Sub本例的本例的If语句也可改写成:语句也可改写成:If Grade 60 Then MsgBox(不合格不合格)Else MsgBox(合格合格)8.3.3 块状选择语句块状选择语句 n格式:格式:If Then End If 或或If Then Else End IfIf Grade=60 Then MsgBox(合格合格)Else MsgBox(不合格不合格)End If注意:注意:Then后不能有其他语句后不能有其他语句(单引号引导的注释语句除外单引号引导的注释语句除外)8.3.4 选择语句嵌套选择语句嵌套 例例11 Sub Grade()Dim Grade As Integer,Evalu As String Grade=InputBox(请输入考试分数:请输入考试分数:)If Grade 60 Then Evalu=不合格不合格 ElseIf Grade 90 Then Evalu=合格合格 Else Evalu=优秀优秀 End If MsgBox Grade&分的等级为分的等级为&EvaluEnd SubElseIf之间没有空格之间没有空格8.3.4 选择语句嵌套选择语句嵌套 指出下面条件语句中隐含的错误:指出下面条件语句中隐含的错误:If Grade 60 Then Evalu=不合格不合格 If Grade 90 Then Evalu=合格合格 Else Evalu=优秀优秀 End If8.3.5 Select Case语句语句nSelect Case语句是多分支选择语句,格式:语句是多分支选择语句,格式:Select Case Case Case Case Else End Select 当当测测试试表表达达式式的的值值满满足足某某个个表表达式时,程序就执行该语句。达式时,程序就执行该语句。如如果果没没有有一一个个表表达达式式的的值值能能满满足足测测试试表表达达式式,则则执执行行Case Else后的语句。后的语句。8.3.5 Select Case语句语句例例12 Sub Grade1()Dim Grade As Integer,Evalu As String Grade=InputBox(请输入考试分数:请输入考试分数:)Select Case Grade Case 100:Evalu=满分满分 Case 90 To 99:Evalu=优秀优秀 Case 80 To 89:Evalu=良好良好 Case 70 To 79:Evalu=中中 Case 60 To 69:Evalu=合格合格 Case Is 60:Evalu=不合格不合格 Case Else:Evalu=数据错误数据错误 End Select MsgBox Grade&分的等级为分的等级为&EvaluEnd Sub8.3.5 Select Case语句语句说明:说明:n测试表达式不一定是关系表达式或逻辑表达式,测试表达式不一定是关系表达式或逻辑表达式,可以是任意类型,但可以是任意类型,但Case子句中的表达式类型子句中的表达式类型必须与之相一致。必须与之相一致。n如果如果Case子句中的表达式是一个常量,则该常子句中的表达式是一个常量,则该常量直接写在量直接写在Case之后,如之后,如Case 100。n如果如果Case子句后的表达式是一个范围,可用子句后的表达式是一个范围,可用To从小到大指定,如从小到大指定,如Case 90 To 99、Case“A”To“Z”;或者使用;或者使用Is 如,如,Case Is 3 And 88.4 循环语句循环语句 nVBA提供了提供了4类循环语句:类循环语句:For.Next循环、循环、Do While.Loop循环、循环、For Each.Next循环、循环、While.End循环循环n最常用的是最常用的是For.Next和和Do While.Loop循环循环8.4.1 For.Next循环循环 8.4.2 Do While.Loop循环循环 8.4.3 双重循环和多重循环双重循环和多重循环为什么需要循环为什么需要循环 程序设计中,常常有这样一种问题:计算程序设计中,常常有这样一种问题:计算和处理方法完全一样,而每次使用的数据和处理方法完全一样,而每次使用的数据都按照一定的规律进行改变。如计算都按照一定的规律进行改变。如计算1+2+3+10=?si从1、2、3.到10将I的只把i的每个值都加起来计算计算1+2+3+10=?0+1=1 1+2=3 3+3=6 6+4=10 10+5=15 45+10=558.4.1 For.Next循环循环 nFor.Next循环一般用于循环次数已知的过程循环一般用于循环次数已知的过程n语法格式:语法格式:For=初值初值 To 终值终值 Step 循环体循环体Next 循环变量循环变量注释:注释:“step 步长步长“缺省时,默认为缺省时,默认为”step 1”“循环变量循环变量”缺省时,默认为缺省时,默认为 For 后面设后面设置的循环变量。置的循环变量。求求1+2+10Sub sum()S=0 For i=1 to 10 step 1 s=s+i 将目前将目前s的值加上的值加上i后,再赋给后,再赋给s NextEnd sub 执行次数:执行次数:10次次思考:如何求1+3+5+.99 如何求2+4+8+100执行过程执行过程n循环前:循环前:s=0n循环开始:循环开始:ni=1,s=s+i=0+1=1ni=2,s=s+i=1+2=3ni=3,s=s+i=3+3=6ni=4,s=s+i=6+4=10ni=5,s=s+i=10+5=15nn i=10,s=s+i=45+10=55例例例例:分析以下程序段,循环结束后分析以下程序段,循环结束后分析以下程序段,循环结束后分析以下程序段,循环结束后k k为为为为?,?,变量变量变量变量s s为为为为?sub a()Const pi=3.14T=F(5)dim a(3,5)as integer S=0 for k=1 to 10 step 2 S=S+1 k=k*2 next k end subK=1,s=s+1=1,k=k*2=2,k=k+2=4k=4,s=s+1=2,k=k*2=8,k=k+2=10k=10,s=s+1=3,k=k*2=16,k=k+2=18k=10,s=s+1=3,k=k*2=16,k=k+2=18k=1810,循环结束,循环结束8.4.1 For.Next循环循环 例例13 编写编写Even()过程,输出过程,输出1020的所有偶数的所有偶数 相邻偶数相差相邻偶数相差2 思考:退出循环时,思考:退出循环时,I的值是多少?为什么?的值是多少?为什么?8.4.1 For.Next循环循环 例例14思考:可否将循环修改为:思考:可否将循环修改为:For I=10 To 1 step-1?为什么?为什么?用随机函数模拟入学分数用随机函数模拟入学分数分值在分值在300399之间之间 8.4.1 For.Next循环循环 例例15通过键盘输入一个自然数通过键盘输入一个自然数X,判断它是否为质数,判断它是否为质数质数:除质数:除1以外,只能被以外,只能被1和自己所整除的自然数和自己所整除的自然数循环变量值超过终值后循环变量值超过终值后“自然自然”终止终止 Do while 条件式条件式 条件为真时执行语句,条件为真时执行语句,循环体循环体 为假时结束循环为假时结束循环 loopdowhile/untilloopDo until 条件式条件式 条件为真时结束循环,条件为真时结束循环,循环体循环体 为假时执行语句为假时执行语句 条件语句序列条件语句序列 exit do 结束条件语句序列结束条件语句序列loop当型循环当型循环直到型循环直到型循环用用do while loop用用do untilloopDim i as integerDim s as integeri=1S=0Do While i10 s=s+i i=i+1loop重做重做1+2+.+108.4.2 Do While.Loop循环循环 nDo While.Loop通常用于循环次数未知的过程通常用于循环次数未知的过程n语法格式:语法格式:Do While 循环体循环体 条件语句序列条件语句序列 exit do 结束条件语句序列结束条件语句序列Loop n循环体中必须有循环体中必须有“破坏破坏”循环条件成立的语句,以免循环条件成立的语句,以免“死循环死循环”n强制终止循环的语句是强制终止循环的语句是Exit Do,跳出循环后执行跳出循环后执行Loop后的语句。后的语句。8.4.2 Do While.Loop循环循环 例例16-1为结束输入的标志为结束输入的标志 8.4.2 Do While.Loop循环循环 n例例16也可使用也可使用For.Next循环语句:循环语句:将循环终值设将循环终值设为一个足够大的数,一旦输入为一个足够大的数,一旦输入-1即跳出循环。即跳出循环。8.4.3 双重循环和多重循环双重循环和多重循环 n双重循环:循环语句的循环体本身也是一个循环双重循环:循环语句的循环体本身也是一个循环n对于一个对于一个m行行n列的表格来说,常常需要用双重列的表格来说,常常需要用双重循环才能访问到表中的每一个数据。循环才能访问到表中的每一个数据。n对对于于一一个个外外层层循循环环有有m次次、内内层层循循环环有有n次次的的双双重循环,其核心循环体将重复执行重循环,其核心循环体将重复执行mn次。次。n多重循环指三重循环或更多层次嵌套的循环多重循环指三重循环或更多层次嵌套的循环8.4.3 双重循环和多重循环双重循环和多重循环 例例17在立即窗口中输出在立即窗口中输出10以内的平方根表以内的平方根表 Format()函函数数是是打打印印项项的的格格式式函函数数,0.00表表示示小小数数保保留留两两位位,同同时时在在没没有有整整数数部部分分、小小数数部部分时用分时用0填补。填补。8.4.3 双重循环和多重循环双重循环和多重循环 例例18求求Sum ,直到某项的绝对值小于,直到某项的绝对值小于10-4 8.5 数组数组 8.8.1 数组概念数组概念8.8.2 一维数组一维数组 8.8.3 二维数组二维数组 8.8.1 数组概念数组概念n数组是一种数据存储结构,它用一个标识符保存数组是一种数据存储结构,它用一个标识符保存若干个数据,用不同的下标予以区分。若干个数据,用不同的下标予以区分。n数组具有以下特性数组具有以下特性(数组中的每个数据称为元素数组中的每个数据称为元素):每个元素类型相同,占用同样大小的存储空间每个元素类型相同,占用同样大小的存储空间数组中的元素在内存中连续存放数组中的元素在内存中连续存放通过下标可访问数组中的每个元素。下标的类型可以通过下标可访问数组中的每个元素。下标的类型可以是整数,常量、变量或算术表达式。是整数,常量、变量或算术表达式。数组分为一维数组、二维数组和多维数组数组分为一维数组、二维数组和多维数组 Array(0)=17Array(1)=19 8.8.2 一维数组一维数组n一维数组中的元素呈直线状排列,每个下标对应一维数组中的元素呈直线状排列,每个下标对应一个元素。一个元素。n数组在使用前必须先行定义,语法格式是:数组在使用前必须先行定义,语法格式是:Dim(To 上界上界)As 数据类型数据类型若省略下标下界,则数组的最小下标为若省略下标下界,则数组的最小下标为0 例如:例如:Dim A(10)As Double A数组共有数组共有11个元素个元素(下标的起止范围是下标的起止范围是010)8.8.2 一维数组一维数组说明:说明:n定义数组时,下标的下界值和上界值必须定义数组时,下标的下界值和上界值必须是常量或符号常量,不能使用变量。是常量或符号常量,不能使用变量。n引用数组元素时,下标不得超出所定义的引用数组元素时,下标不得超出所定义的下界和上界,否则程序的执行将被中断,下界和上界,否则程序的执行将被中断,同时系统报错。同时系统报错。n使使用用数数组组时时,用用LBound()和和UBound()函函数可得到该数组下标的下界和上界值。数可得到该数组下标的下界和上界值。8.8.3 二维数组二维数组n二维数组中数据排列呈平面状,可保存一个二维二维数组中数据排列呈平面状,可保存一个二维表的信息。表的信息。n数组元素使用行下标和列下标定位,定义格式:数组元素使用行下标和列下标定位,定义格式:Dim(To 上界上界,To 上界上界)As 数据类型数据类型 如果省略下标的下界值,则下界值默认为如果省略下标的下界值,则下界值默认为0 例如,例如,Dim A(3,4)As Integer,声明的,声明的A数组数组有有4 5=20个元素。个元素。n二维数组的操作通常需要与双重循环相结合。二维数组的操作通常需要与双重循环相结合。8.6 过程过程 8.6.1 Sub过程过程 8.6.2 Function过程过程8.6.3 过程调用中的参数传递方式过程调用中的参数传递方式 8.6.4 数组参数的传递方法数组参数的传递方法 8.6.1 Sub过程过程nVBA模块的过程可分为模块的过程可分为Sub过程和过程和Function过程两大类。过程两大类。区别在于前者没有返回值而后者有。区别在于前者没有返回值而后者有。1.Sub过程的语法格式过程的语法格式PrivatePublicStaticSub (参数表参数表)语句语句End SubPrivate表示本过程为模块级过程表示本过程为模块级过程Public表示本过程是全局过程,在整个应用程序的各表示本过程是全局过程,在整个应用程序的各个模块中均有效。默认值是个模块中均有效。默认值是Public过程。过程。Static表示本过程中声明的局部变量均为静态变量,表示本过程中声明的局部变量均为静态变量,变量的值在整个程序运行期间予以保留。变量的值在整个程序运行期间予以保留。8.6.1 Sub过程过程被另一个过程调用时,参数表用于接纳所需的数据;被另一个过程调用时,参数表用于接纳所需的数据;如果没有参数可传递,被调用过程就是无参过程。如果没有参数可传递,被调用过程就是无参过程。2.过程的调用过程的调用n过程在执行中可以调用另外一个过程,同时将参过程在执行中可以调用另外一个过程,同时将参数传递过去;调用完毕再回到本过程继续执行。数传递过去;调用完毕再回到本过程继续执行。n过程的调用方法:过程的调用方法:Call(参数表参数表)或或 参数表参数表 8.6.1 Sub过程过程例例24 8.6.1 Sub过程过程例例25 调调用用DataPlus过过程程时时,X、Y是是实参,实参,A、B是形参是形参调调用用DataSub过过程程时时,形形参参与与实实参参的名称的名称一样,都是一样,都是X和和Y实参:主调过程的参数实参:主调过程的参数 形参,被调过程的参数形参,被调过程的参数 8.6.2 Function过程过程nFunction过程是用户自定义函数,语法格式:过程是用户自定义函数,语法格式:PrivatePublicStaticFunction (参数表参数表)As 类型类型 语句语句End FunctionnFunction过程亦称函数过程,与过程亦称函数过程,与Sub过程的区别过程的区别在于具有返回值。在于具有返回值。nFunction过程的返回值通过过程名带回。过程的返回值通过过程名带回。返回值类型,默认为变体型返回值类型,默认为变体型 8.6.3 过程调用中的参数传递方式过程调用中的参数传递方式 参数的传递方式有两种:按地址传递和按值传递参数的传递方式有两种:按地址传递和按值传递1.按地址传递按地址传递n形参与实参在内存中占用相同的存储单元。当被形参与实参在内存中占用相同的存储单元。当被调过程的形参值发生变化时,实参值也产生同样调过程的形参值发生变化时,实参值也产生同样的变化。的变化。n默认的参数传递方式是按地址。如果要显式指定默认的参数传递方式是按地址。如果要显式指定按地址传递方式,可在每个形参前增加关键字按地址传递方式,可在每个形参前增加关键字ByRef。8.6.3 过程调用中的参数传递方式过程调用中的参数传递方式 例例28 分析输出结果分析输出结果 运行运行Z和和C实际上是同一变量实际上是同一变量 8.6.3 过程调用中的参数传递方式过程调用中的参数传递方式 2.按值传递按值传递n实参和形参是两个不同的变量,占用不同实参和形参是两个不同的变量,占用不同的内存单元。实参将其值赋给形参,以后的内存单元。实参将其值赋给形参,以后形参的变化不会影响到实参的值。形参的变化不会影响到实参的值。n要按值传递,必须在形参前冠以关键字要按值传递,必须在形参前冠以关键字ByVal。8.6.3 过程调用中的参数传递方式过程调用中的参数传递方式 例例29 分析输出结果分析输出结果(1)输出:输出:X=10,Y=20(2)输出:输出:A=10,B=20(3)输出:输出:A=20,B=10(4)输出:输出:X=10,Y=20形参形参A、B的值的交换不影响实参的值的交换不影响实参X、Y的值的值 谢谢你的阅读v知识就是财富v丰富你的人生71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。康德72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。西塞罗73、坚持意志伟大的事业需要始终不渝的精神。伏尔泰74、路漫漫其修道远,吾将上下而求索。屈原75、内外相应,言行相称。韩非
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!