收藏 分享(赏)

运算符和表达式.pptx

上传人:wspkg9802 文档编号:4894988 上传时间:2019-01-20 格式:PPTX 页数:199 大小:1.30MB
下载 相关 举报
运算符和表达式.pptx_第1页
第1页 / 共199页
运算符和表达式.pptx_第2页
第2页 / 共199页
运算符和表达式.pptx_第3页
第3页 / 共199页
运算符和表达式.pptx_第4页
第4页 / 共199页
运算符和表达式.pptx_第5页
第5页 / 共199页
点击查看更多>>
资源描述

1、五、运算符和表达式 1、运算符运算符是代表某种运算功能的符号,它标明所要进行的运算。根据不同的运算,VBA中的运算符可分为4种类型:算术运算符关系运算符(比较运算符)字符串链接运算符逻辑运算符。,(1)算术运算符算术运算符用来执行简单的算术运算。VBA提供了8种算术运算符(详见教材P249)。,算术运算符两边的操作数都应该是数值型,如果是数字字符或逻辑型,则系统自动将其转换成数值型后再进行运算。,指数运算()求一个数的某次方。在运用乘方运算符时,只有当指数为整数值时,底数才可以为负数。 【例】 3 4 2 ( 1 / 2 )81 1.4142 ( - 2 ) 3 ( - 2 ) ( 1 / 2

2、 )- 8 出错 True 3 Flase ( 1 / 2 )- 1 0,整数除法()对两个操作数做除法运算并返回一个整数。整数除法的操作数一般为整型,当操作数是小数时,首先被四舍五入为整型或长整型,然后再进行整除运算。如果运算结果是小数,系统自动将其截断为整型或长整数,不再进行四舍五入处理。,【例】 11 / 33.666667 ( 浮点除法 ) 13.5 34 ( 整数除法,操作数先被四舍五入 ) 11 33 ( 整数除法,运算结果不做四舍五入 ) “ 7 “ “ 3 “2 ( 字符串先转换为数值型 ) 5 2 * 30 ( 乘法的运算级别高于整除 ) 3.56 7 / 3.52 ( 浮点

3、除法的级别高于整除 ),取模运算(Mod)对两个操作数做除法运算并返回余数。如果操作数有小数时,系统自动将其四舍五入为整数后再进行运算。结果的正负号与被除数相同。,【例】 11 Mod 32 12 Mod 30 - 11 Mod 3- 2 11 Mod - 32 11.4 Mod 32 11.56 Mod 6.20,算术运算符两边的操作数都应该是数值型,如果是数字字符、逻辑型,则系统自动将其转换成数值型后再进行运算;如果是日期型可以加(减)一个整数,表示后推(前推)若干天。 【例】 “123“ + 2 True + 20125 19 # 2012 - 01 - 01 # + 1 # 12 /

4、31 / 1899 # - 1# 2012 - 1 - 2 # 0:00:00 # 2012 - 10 - 1 # - # 2012 - 10 - 2 #- 1 # 1900 - 1 - 1 # + # 1900 - 1 - 2 # 1900 - 1 - 4 #,(3)字符链接串运算符字符串运算符就是将两个字符串连接起来生成一个新的字符串。字符串运算符有两个:& 运算符、+ 运算符, & 运算符用于强制两个字符串的连接。 由于符号&还是长整型定义符,在字符串变量使用运算符&时,变量与运算符之间必须加一个空格。 【例】x& = 123x & #1949-10-1#,作为长整型定义符,作为连接运算

5、符,运算符&两边的操作数可以是字符型、数值型或日期型。进行连接操作前先将操作数的数据类型转换为字符型,然后再进行字符串的连接。 【例】123 & “ABC“aa = 123aa & “ ABC “aa&“ABC “,123ABC,定义变量并赋值,123ABC,出错, + 运算符用于连接两个字符串,形成一个新的字符串。 运算符两边的操作数必须都是字符串。 由于符号“ + ” 还是算术运算符,因此:如果两边的操作数都是数值型,则进行普通的加法运算。如果一个是数值型,另一个为数字字符串,则系统自动将数字字符串转化为数值,然后进行加法运算。如果一个是数值型,另一个为非数字字符串,则出错。,【例】 “A

6、BC“ & 123 “ABC“ + “123“ABC123 ABC123 “12.5“ & 24 “12.5“ + 2412.524 36.5 “A12.5“ & 24 “A12.5“ + 24A12.524 出错 “123.5“ & # 2001-09-11 #123.52001-9-11 12.5 & # 2011-10-01 #12.52011-10-1 # 2011-09-01 # + 10 # 9999-12-31 # + 12011-9-11 溢出,运算符“ & “ 与 “ + “的比较,日期所能表示的范围:100年1月1日至9999年12月31日 注:年份如果是两位数0 29之间

7、,系统解释为2000 2029年30 99之间,系统解释为1930 1999年,在VBA中,运算符“ + “既可用作加法运算符,也可以用作字符串运算符,但运算符“ & “专门作为字符串运算符。因此在有些情况下,用“ & “比用“ + “可能更为安全。,(3)关系运算符关系运算符用于对两个表达式比较大小,比较的结果将是一个逻辑值,即:若关系成立,则为真(True);反之则为假(False)。VBA提供了6种关系运算符(见教材P271)。,等于,=,“abc“=“abd“,False,大于,大于等于,小于等于,小于,不等于,=,=,“abc“abd“,45123,“45“ = “123“,#201

8、2-1-1#=#2011-1-1#,“abcd“ “ABCD“,False,True,True,False,False,在使用关系运算符时应注意以下原则: 如果参与比较的两个操作数都是数值型,则按它们的大小进行比较。 如果参与比较的两个操作数都是字符型,则从左到右一一对应比较。字母不区分大小写,且大于数字字符。汉字字符按汉语拼音比较大小,且大于西文字符。字符的大小顺序:汉字字符 字母 ( 按字母顺序且大小写相同 ) 数字 空格,注意教材P271的叙述。,在VBA中,允许部分不同数据类型的量进行比较,如:数值型与逻辑型数值型与日期型日期型与逻辑型日期型与数字字符数值型与数字字符注:均转换为数值型

9、后再进行比较。,(4)逻辑运算符逻辑运算符用于对两个逻辑量进行逻辑运算,其结果仍然是一个逻辑值。VBA的逻辑运算主要为: AND (与运算) OR (或运算) NOT (非运算),各个逻辑运算符的真值表,True True,True False,False True,False False,False True True,False False True,True False True,True False False,P271,2、表达式 (1)表达式的组成 表达式由字面值、常量、变量、运算符、函数、标识符、逻辑量和括号等按一定的规则组成。 表达式通过运算得出结果,运算结果的数据类型由操作数

10、的数据类型和运算符共同决定。,在算术运算表达式中,参与运算的操作数可能具有不同的数据精度,VBA规定:运算结果的数据类型采用精度高的数据类型。,(2)表达式的书写规则 要改变运算符的运算顺序,只能使用圆括号且必须成对出现; 乘号不能省略; 表达式从左至右书写,字母无大小写区分。 注意:计算机表达式与数学不一样,(3)运算优先级在一个运算表达式中,如果含有多种不同类型的运算符,则运算进行的先后顺序由运算符的优先级决定。,圆括号的优先级别最高,因此可以用圆括号改变表达式的运算顺序。,P272,【例】 100 / 5 24 12 / 5 * 24.8 12 5 * 21 -12 Mod 5 * 2-

11、2 3 + 4 * 2 “12“ + “34“False,【例】 15 False And “A“ & “12“ False And “A“ & “12“ False And “A12“ “B“False Or True And TrueFalse Or TrueTrue,六、函数VBA提供了近百个内置的标准函数,以方便完成许多操作。 函数的标准形式:函数名 ( 参数列表 ) 说明: 函数名不可缺省,这是函数的标识。 函数的参数可以是常量、变量或表达式,且置于函数名后的圆括号中;参数可以是一个或多个,多个参数之间用逗号隔开。 函数无参数时,其后的圆括号可以省略。 函数被调用时,都会返回一个特定

12、类型的值。,学习函数的要点: 函数名、函数的功能和语法格式 参数的个数、数据类型以及每个参数的含义(包括缺省时的含义及默认值) 函数的返回值及其数据类型,1、数学函数 (1)绝对值函数 语法格式:Abs ( Number ) 功能:返回参数的绝对值 返回值数据类型:数值型 说明:Number是任何有效的数值表达式。 【例】Abs ( - 25 )25Abs ( 100 24.5 - 25 )21,(2)向下取整函数 语法格式:Int ( Number ) 功能:返回参数的向下取整的值 返回值数据类型:数值型 说明:参数为负值时返回小于等于参数值的最大负数。 【例】Int ( 2.5 )2Int

13、 ( - 2.5 )-3,(3)取整函数 语法格式:Fix ( Number ) 功能:返回参数的整数部分 返回值数据类型:数值型 说明:参数为负值时返回大于等于参数值的最小负数(注意与Int函数的不同之处)。 【例】Int ( 2.5 ) Fix ( 2.5 )2 2Int ( - 2.4 ) Fix ( - 2.4 )- 3 - 2,(4)开平方函数 语法格式:Sqr ( Number ) 功能:计算参数的平方根 返回值数据类型:双精度型 说明:Number的值必须大于等于0。 【例】Sqr ( 9 ) Sqr ( Abs ( -16 ) )3 4,(5)三角函数 语法格式:Sin ( N

14、umber )Cos ( Number )Tan ( Number ) 功能:计算参数的正弦、余弦和正切值 返回值数据类型:双精度型 说明:参数是以弧度为单位的角度值。 【例】Const PI AS Single = 3.1415927Sin ( PI / 6 ) Tan ( PI / 4 )0.500000 1.000000,(6)随机函数 语法格式:Rnd ( Number ) 功能:产生一个大于等于0 ,且小于 1的随机数 返回值数据类型:单精度型 【例】Int ( 10 * Rnd ) 产生1个 0 , 9 的随机整数Int ( 10 * Rnd + 1 )产生1个 1 , 10 的随

15、机整数,说明: Rnd函数产生的随机数序列与参数Number有关。 如果想获得真正的随机数,那么应该在程序中将Randomize 作为第一条命令。,(7)自然指数(对数)函数 语法格式:Exp ( Expression ) 或者 log(Expression) 功能:计算e的N次方或者计算以e为底的数值表达式的对数 返回值数据类型:双精度型,(8)四舍五入函数 语法格式:Round ( Expression1 , Expression2 ) 功能:对Expression1的值按指定小数位数进行四舍五入 返回值数据类型:双精度型,说明: Expression1的值是要进行四舍五入运算的值。 Ex

16、pression2的值表示在进行四舍五入运算时,小数点右边应该保留的位数,如果缺省则函数返回整数值。 Expression2的值如果是小数,则先对其进行四舍五入到整数,再对Expression1进行四舍五入运算。 函数能够接受的小数位数最多为14位,如果Expression2的值为负值,系统将作出错误提示。,【例】Round ( 234.2678 , 2 )Round ( 234.2678 )Round ( 234.2678 , 8 / 3 ) Round ( “234.2“ + “678“ , 2 )Round ( 234.2678 , -1 ) 如何产生1个 10 , 50 的随机整数?I

17、nt ( Rnd *41 ) + 10Round ( Rnd * 40 ) + 10,234.27,234,234.268,234.27,2、字符串函数 (1)字符串检索函数 语法格式:InStr ( Start , String1 , String2 , Compare ) 功能:返回String2在String1中最早出现的位置 返回值数据类型:长整型 说明: String1为接受搜索的字符表达式。 String2为被搜索的字符表达式。 Start为数值表达式,设置搜索的起始位置。如果缺省,则从第一个字符的位置开始搜索。,Compare指定字符串比较的方法,其值可以是:0 做二进制比较1

18、不区分大小写的文本比较2 基于数据库中包含信息的比较 如果指定了Compare参数,则一定要有Start参数。,【例】 InStr ( “abcdABCD“ , “ bc “ )2 InStr ( 1 , “abcdABCD“ , “ bc “ )2 InStr ( “ “ , “bc“ )0 InStr ( “ abcdABCD“ , “ “ )1 InStr ( 3 , “ abcdABCD “ , “ “ )10 InStr ( 9 , “abcdABCD“ , “ bc “ )0,【例】 InStr ( “abcdABCD“ , “ BC “ )2 InStr ( 1 , “abcdA

19、BCD“ , “ BC “ , 0 )6 InStr ( 1 , “abcdABCD“ , “ BC “ , 1 )2 InStr ( 3 , “abcdABCD“ , “bc“ , 1 )6 InStr ( 3 , “abcdABCD“ , “ bc “ , 0 )0 InStr ( “abcdABCD“ , Null ) InStr ( Null , “bc“ )Null Null,(2)字符串长度检测函数 语法格式:Len ( String | Varname ) 功能:返回字符串所含字符数 返回值数据类型:长整型 说明:a) String为任何有效的字符常量表达式,函数返回的即为该字符

20、串中所含的字符数。,b) Varname为任何有效的变量名。如果变量是字符型(不是定长的),则函数返回的即为该变量所含的字符数(未赋值时返回0);如果变量是除变体数据类型以外的其它数据类型,则函数返回的即为该数据类型所占空间; 如果变量是变体数据类型,则返回将其值作为字符串后所含的字符数。,【例】 ? Len ( “AB“ + “ECD“ ) ? Len ( “南京“ ) 5 2 ? Len ( “1234.5678“ ) ? Len ( 123 )9 出错x! = 123.45 y# = 123.45 ? Len ( x ) ? Len ( y ) 4 8 Dim x As String *

21、 10 x = “ABC“ Debug.Print Len ( x )10,【例】x = 123.4 z = True ? Len ( x ) ? Len ( z )5 4Dim y As Datey = #10/15/2011#Debug.Print Len ( y )8? Len ( Null )Null,y = #10/15/2011#Debug.Print Len ( y )10,(3)字符串截取函数 Left ( ) 函数 语法格式:Left(String , Length) 功能:从字符表达式String左侧的第一个字符开始,截取由Length的值所指定的若干个字符 Right (

22、 ) 函数 语法格式:Right(String,Length) 功能:从字符表达式String右侧的第一个字符开始,截取由Length的值所指定的若干个字符 Mid ( ) 函数 语法格式:Mid(String , Start , Length ) 功能:从字符表达式String返回一个子字符串此3个函数的返回值数据类型均为字符型。,【例】Left ( “ABCD中国 “ , 8 - 5 )ABCLeft ( “ABCD中国 “ , 0 )(空字符串)Left ( “ABCD中国 “ , 8 )ABCD中国Right ( “ABCD中国 “ , 4 )CD中国Right ( “ABCD中国 “

23、 , 7 )ABCD中国,【例】Mid ( “ABCD中国 “ , 3 , 8 )CD中国Mid ( “ABCD中国 “ , 12 , 2 )(空字符串)Mid ( “ABCD中国 “ , 0 , 4 )出错Mid ( “ABCD中国 “ , 3 , -1 )出错,(4)生成空格字符函数 语法格式:Space(Number) 功能:返回数值表达式所指定的空格数 返回值数据类型:字符型 说明:Number的值必须是个大于等于0的数;如果是负数,则出错。 【例】Space ( 1 + 2 ) Space ( -2 ) 出错Space ( 0 )(空字符串),(5)大小写转换函数 Ucase ( )

24、函数 语法格式:Ucase(String) 功能:将字符串中的小写字母转换成大写字母 Lcase ( )函数 语法格式:Lcase(String) 功能:将字符串中的大写字母转换成小写字母此2个函数的返回值数据类型均为字符型。 【例】Ucase ( “AbCd123“ ) Lcase ( “AbCd123“ )ABCD123 abcd123,(6)删除空格函数 LTrim ( )函数 语法格式:LTrim ( String ) 功能:删除字符串的开始空格 返回值数据类型:字符型RTrim ( )函数 语法格式:RTrim ( String ) 功能:删除字符串的尾部空格 返回值数据类型:字符型

25、,Trim ( )函数 语法格式:Trim ( String ) 功能:删除字符串的开始和尾部空格 返回值数据类型:字符型,String为任何有效的字符表达式。 此三个函数均不能删除字符串的中间空格。,【例】LTrim ( “ ABCD “ )ABCDRTrim ( “ ABCD “ )ABCDTrim ( “ ABCD )ABCD“ XY “ + RTrim ( “ ABCD “ ) + “ L “XYABCDL,3、日期/时间函数 (1)系统日期和时间函数 Date ( )函数 语法格式:Date ( ) 功能:返回当前系统的日期 Time ( )函数 语法格式:Time ( ) 功能:返

26、回当前系统的时间 Now ( ) 函数 语法格式:Now ( ) 功能:返回当前系统的日期和时间 【例】Date + Time = Now,返回的日期格式由操作系统设置的日期格式决定。,True,(2)截取日期分量函数 Year ( ) 函数 语法格式:Year ( Date ) 功能:返回日期表达式的年份 返回值数据类型:整型 Month ( ) 函数 语法格式:Month ( Date ) 功能:返回日期表达式的月份 返回值数据类型:整型 Day ( ) 函数 语法格式:Day ( Date ) 功能:返回日期表达式的日期 返回值数据类型:整型,【例】Year ( #2011-10-01#

27、 )2011Year ( Null )NullYear ( “2010-10-20“ )2010Year ( 3 - 2 )1899Year ( “ Oct , 15“ )系统日期的年份,【例】Month ( #2011-10-01# )10Month ( Null )NullMonth ( “2010-09-20“ )9Month ( 1 )12Month ( “ Aug , 15 “ )8Month ( 0 )12,【例】Day ( #2011-10-01# )1Day ( Null )NullDay ( - 1 )29,Weekday ( ) 函数 语法格式:Weekday ( Date

28、 , Firstdayofweek ) 功能:返回指定日期是一周的第几天 返回值数据类型:整型,【例】2012年10月1日为星期一,则:Weekday ( #2012-10-01# )2Weekday ( #2012-10-01# , 1 )2Weekday ( #2012-10-01# , 2 )1Weekday ( Null )Null,(3)截取时间分量函数 Hour ( ) 函数 语法格式:Hour ( Time ) 功能:返回时间表达式的小时数 返回值数据类型:整型 Minute ( ) 函数 语法格式:Minute ( Time ) 功能:返回时间表达式的分钟数 返回值数据类型:整

29、型 Second ( ) 函数 语法格式:Second ( Time ) 功能:返回时间表达式的秒数 返回值数据类型:整型,【例】Second ( #20:15:30# )30Second ( #20:10# )0Second( Null )Null,(4)组合时间函数 语法格式:DateSerial ( Year , Month , Day ) 功能:返回包含指定年、月、日的日期 返回值数据类型:日期型 说明: Year为100 9999间的整型数据,或一个数值表达式,表示返回日期的年份。 Year的值介于0 29之间,解释为2000 2029年;介于30 99之间,解释为1930 1999

30、年。, Month为整型数据或数值表达式,表示返回日期的月份。 Day为整型数据或数值表达式,表示返回的日期。 当参数的取值范围超出可接受的范围时,则系统将适时进位到下一个较大的时间单位。,【例】DateSerial ( 1949 , 10 , 1 )1949-10-1DateSerial ( 2001 , 9 , 11 )2001-9-11DateSerial ( “ 2013 “ , “ 2 “ , “ 15 “ )2013-2-15DateSerial ( 2012 + 5 , 2 + 3 , 3 + 7 )2017-5-10 DateSerial ( 2012 , 10 , False

31、 )2012-9-30 DateSerial ( 2012 , 10 , True )2012-9-29,【例】 DateSerial ( 2011 , 2 , 30 )2011-3-2 DateSerial ( 2011 , 14 , 35 )2012-3-6 (注:2012年为闰年) DateSerial ( Year( Date ) 1 , 5 , 1 )上一年度的5月1日,4、类型转换函数 (1)字符串转换字符代码函数 语法格式:Asc ( String ) 功能:返回字符表达式中第1个字符的ASCII值 返回值数据类型:整型,当String为空字符串时将出错。 当String为汉字(

32、双字节字符)时,将返回一个负整数。,P276,【例】Asc( “ABCD“ ) Asc( “aBC“ )65 97Asc( “0A1B“ ) Asc( “ “ )48 32Asc( “ “ ) Asc( Null )出错 出错Asc( “中国“ )- 10544,(2)字符串代码转换字符函数 语法格式:Chr ( Charcode ) 功能:返回与字符代码相对应的字符 返回值数据类型:字符型 【例】Chr ( 65 ) Chr ( 97 )A aChr ( 13 )返回一个回车符“ AB “ + Chr( 10 ) + “ CD “ABCD 注:Chr ( 10 )为换行符,(3)数字转换成字

33、符函数 语法格式:Str ( Number ) 功能:将数值表达式的值转换为字符串 返回值数据类型:字符型,当一个数字转换成字符串时,会在其前头保留一个空格来表示正负。表达式值为正,返回的字符串包含一前导空格表示正号。,【例】Str( 45.89 ) + “2011“45.892011Str( - 78 ) + “ABC“- 78ABC“ABC“ + Str( - 78 ) ABC - 78- 78 + “ABC“ 出错Str( 97.5 ) & #2011-10-20#97.52011-10-20true & Str( 97.5 )True 97.5,(4)字符串转换成数字函数 语法格式:V

34、al ( String ) 功能:将由数字组成的字符串转换为数值型 返回值数据类型:数值型,数字字符串转换时可自动将字符串中的空格、制表符和换行符去掉。 转换时当遇到系统不能识别为数字的第一个字符时,停止字符串的转换。,【例】Val( “45.89“ )45.89Val( “- 246“ ) + 100- 146Val( “97ABC“ )97Val( “AB24“ )0Val( “1.4E2“ ) + 10150,【例】将下面的数学公式写成Access表达式:,(- b + Sqr ( b 2 - 4 * a * c ) ) / (2 * a ) + Log ( 12 )- Abs ( 10

35、 - Exp ( 2 ) ) + Sin ( 3.1415927 / 6 ),5、其它函数 (1)IIf ( )函数 语法格式:IIF(逻辑表达式,表达式1,表达式2) 功能:根据逻辑表达式的值,返回两个值中的一个 说明:当逻辑表达式的值为真时,返回表达式1的值,否则返回表达式2的值。 【例】根据成绩输出相应的分数等级:不及格、及格和优秀。 IIf ( cj.cj = 90 , “优秀“ , _IIf ( cj.cj 60 , “不及格“ , “及格“ ) ),P282,(2)Switch( )函数 语法格式:Switch ( Expr1 , Value1 , Expr2 , Value2 ,

36、 ) 功能:依次判断各条件表达式的值,当某一表达式的值为True时,即输出其后的值。 说明: Expr1为条件表达式。 Value1如果相关的条件表达式值为True时,即输出此部分的值。,【例】根据输入的成绩判定等级。 Switch ( cj.cj 60 , “不及格“ , _cj.cj 90 , “及格“ , _cj.cj = 100 , “优秀“ ),(3)Choose( )函数 语法格式:Choose ( Index , Choice1 , Choice2 , ) 功能:根据Index的值从其后的列表中选择并返回一个值。 说明: Index是数值表达式或字段,其值介于1和可选项目数之间。

37、 Choice为选项列表,函数即输出与Index的值相对应的选项值。 只有当Index的值介于1和可选的项目数之间,函数才会返回其后对应的选项的值,否则返回无效值(Null)。,【例】将输入的x的值(仅限于1 9)转换为相应的英语单词。 Dim x As Integer x = InputBox ( “请输入一个1至9的数字“ ) Choose ( x , “One“ , “Two“ , “Three“ , “Four“ , _“Five“ , “Six“ , “Seven“ , “Eight“ , _“Nine“ ),(4)InputBox( )函数(输入框) 语法格式:InputBox (

38、 Prompt , Title , Default , Xpos , Ypos , Helpfile , Context ) 功能:在输入框中显示提示信息,等待用户输入正文或单击按钮,并返回文本框中输入的字符串。 返回值数据类型:字符型,P290,说明: Prompt提示字符串,最大长度约为1024个字符。如果包含多行,那么可以在各行之间用回车符Chr ( 13 )、换行符Chr ( 10 )或者它们的组合Chr ( 13 ) & Chr ( 10 )来分隔。 Title显示在输入框标题栏中的字符串表达式。如果缺省,则标题栏中显示的是应用程序名。 Default显示在文本框中的字符串表达式,如

39、果缺省,则文本框为空。 【例】InputBox ( “ What is your name ? “ ),调用InputBox函数时,如果中间若干个参数缺省,其对应的分隔符逗号“ , ”不能缺省。 如果用户单击“确定”按钮或按下回车键,则函数返回文本框中的内容;如果用户单击“取消”按钮,函数则返回一个空字符串。,(5)MsgBox( )函数(消息框) 语法格式:MsgBox ( Prompt , Buttons , Title , Helpfile , Context ) 功能:在消息框中显示信息,等待用户单击按钮,并返回一个整值型数据,告诉用户单击的是哪个按钮。 返回值数据类型:整型,P292

40、,说明: Prompt显示在消息框中的信息,最大长度大约为1024个字符。如果包含多个行,可以各行之间用回车符、换行符或是它们的组合分隔。 Buttons是一个数值表达式的和,指定在消息框中显示的按钮数目及形式、使用的图标样式、默认按钮是什么以及消息框的强制回应等。如果缺省,则Buttons的默认值为0。,Buttons选项取值说明(显示按钮及图标),P292,Buttons选项取值说明(默认按钮),【例】 MsgBox ( “Your name is Obama“ , 68 , “Your Name“ ),【例】 MsgBox ( “ 程序运行完毕! “ , 2 + 48 + 256 , “

41、 提示 “ ),如何实现下图所示的对话框?,MsgBox( “程序已修改“ & Chr(13) _& “是否保存? “ , 3 + 32 , “提示“ ),MsgBox( )函数的返回值说明,第 四 节 VBA流程控制语句,VBA中的语句是能够完成某项操作的一条完整命令,它可以包含关键字、函数、运算符、变量、常量以及表达式等。VBA的语句分为3种类型:声明语句为变量、符号常量或程序命名,并且指定一个数据类型。赋值语句把一个值或表达式赋给一个变量。执行语句完成某个动作。,P277,一、声明语句在VBA中,使用声明语句去命名和定义过程、变量、数组以及符号常量。当声明一个过程、变量或常量时,也同时定

42、义了它的作用范围,而此范围取决于声明的位置以及所用的关键字。,过程中声明的变量只在过程中可以使用,而且在调用时会丢失其变量的值,除非将它声明为Static。,二、赋值语句赋值语句是将一个表达式的值赋给变量或数组元素。 语法格式: Let 变量名 | 数组元素 = 值或表达式 功能:将指定的值或表达式的值赋给变量。 说明:通常情况下,Let都可以省略。,赋值语句中的“ = ”并不是数学中的等号,它表示:将等号右边表达式的运算结果赋予等号右边的变量。,【例】Sub Question ( )Dim YourName As StringDim a As IntegerYourName = InputB

43、ox ( “What is your name ?“ )MsgBox “ Your name is “ & YourNameEnd Sub,注意:若要保存所单击消息框中按钮的值,则代码应设置为:a = MsgBox ( “ Your name is “ & YourName ),P278,三、标号和Goto语句Goto语句用于在程序执行过程中实现无条件转移。 语法格式:Goto 标号 功能:无条件地将程序转移至标号的位置,并从该位置继续执行程序。 说明:标号定义时,标号名必须从代码行的第一列开始书写,且标号名后加冒号“ : ”。,【例】Goto Label1Label1:,在VBA中,程序的执

44、行流程可以用结构化语句控制,除了在错误处理的On Error Goto结构中使用外,应避免使用Goto语句。,四、执行语句执行语句是程序的主体,程序功能靠执行语句来实现。语句的执行方式按流程可以分为: 顺序结构按照语句的逻辑顺序依次执行 分支结构(选择结构 条件判断结构)根据条件是否成立选择语句执行路径 循环结构根据循环条件可以重复执行某一段程序语句,1、分支结构VBA支持以下4种分支结构:If Then(单分支)If Then Else(双分支)If Then ElseIf(多分支)Select Case(多分支),(1)If Then 单分支结构语句 语法格式一:If Then 语法格式二

45、:If ThenEnd If功能:当条件表达式为真时,执行Then后面的语句,否则不做任何操作。,If,True,False,End If后语句,说明: 格式一:Then后的语句只能是一条;或者是用冒号分隔的多条语句,并且必须与If语句在同一行上。 格式二:语句块中的语句可以是多条,并且可以多行书写。,【例】比较两个数值变量x和y的值,用x保存大的值,y保存小的值。If x y Thent = xx = yy = tEnd If或者:If x y Then t = x : x = y : y = t,【例】随机出一道两位数加法题让小学生回答,如答对了,显示“正确!”;答错显示“错误!”。Sub

46、 test ( )Dim a As Integer , b As IntegerDim nSum As Integera = 10 + Int( Rnd * 90 )b = 10 + Int( Rnd * 90 )nSum = InputBox ( a & “ + “ & b & “ = ? “ , _“ 加法 “ )If nSum = a + b Then MsgBox ( “ 正确! “ )If nSum a + b Then MsgBox ( “ 错误! “ )End Sub,(2)If Then Else 双分支结构语句 语法格式一:If Then Else 语法格式二:If Then

47、ElseEnd If功能:当条件表达式为真时,执行Then后面的语句1(语句块1);否则执行Else后面的语句2(语句块2)。,If,True,False,End If后语句,【例】输出两个数中的最大值。Dim a As Single , b As Singlea = InputBox ( “ 请输入第一个数值:“ )b = InputBox ( “ 请输入第二个数值:“ ) If a = b Thenmax = aElsemax = bEnd IfDebug.Print “最大值是“ & max或者:If x = y Then max = x Else max = yDebug.Print

48、“最大值是“ & max,【例】输入购书数量及单价,如果购买10本以上,就打八折,否则不打折。计算并输出购书金额。Sub buy ( )Dim qty As Integer , price As SingleDim money As Singleqty = InputBox ( “请输入购书数量“ , “购书数量“ )price = InputBox ( “请输入单价“ , “单价“ )If qty 10 Thenmoney = price * qtyElsemoney = price * qty * 0.8End IfDebug.Print “购书金额 = “ + Str( money ) + “元“End Sub,(3)If Then ElseIf 多分支结构语句 语法格式:If ThenElseIf Then ElseEnd If 功能:依次测试条件表达式1、表达式2、,当遇到条件表达式为真时,执行该条件下的语句块。如均不为真,且有Else选项,则执行Else后的语句块n,否则执行End If后面的语句。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报