注意,对于Left函数和Right函数,如果N值为0,返回零长度字符串;如果大于等于字符串的字符数,则返回整个字符串。对于Mid函数,如果N1值大于字符申的字符数,返回零长度字符串;如果省略N2,返回字符串中左边起N1个字符开始的所有字符。 例如:strl =“opqrst”
str2 =“计算机等级考试”
str = Left( strl,3) ’返回“opq”
str = Left( str2,4) ’返回“计算机等” str = Right( strl,2) ’返回“st” str = Right( str2,2) ’返回“考试” str = Mid( strl,4,2) ’返回“rs”
str = Mid( str2,1,3) ’返回“计算机” str = Mid(str2, 4,) ’返回“等级考试” 4.生成空格字符函数:Space(<数值表达式>) 返回数值表达式的值指定的空格字符数。
例如:strl = Space(3) ’返回3个空格字符 5.大小写转换函数
Ucase(<字符串表达式>):将字符串中小写字母转换成大写字母。 Lcase(<字符串表达式>):将字符串中大写字母转换成小写字毋。 例如:strl = Ucase(“fHkrYt”) ’返回“FHKRYT” str2 = Lcase(“fHKrYt”) ’返回“fhkryt” 6.删除空格函数
Ltrim(<字符串表达式>):删除字符串的开始空格。 Rtrim(<字符串表达式>):删除字符串的尾部空格。 Trim(<字符串表达式>):删除字符串的开始和尾部空格。 例如:str = “ab cde”
str1 = Ltrim(str) ’返回“ab cde” str2 = Rtrim(str) ’返回“ab cde” str3 = Trim(str) ’返回“ab cde” 三、日期/时间函数
日期/时间函数的功能是处理日期和时间。主要包括以下函数: 1.获取系统日期和时间函数 Date():返回当前系统日期。 Time():返回当前系统时间。 Now():返回当前系统日期和时间。
例如:D = Date() ’返回系统气气,如2008-08-08 T = Time() ’返回系统时间,如9:45:00
DT = Now() ’返回系统日期和时间,如2008-08-08 9:45:00 2.截取日期分量函数
Year(<表达式>): 返回日期表达式年份的整数。 Month(<表达式>):返回日期表达式月份的整数。 Day(<表达式>):返回日期表达式日期的整数。
Weekday (<表达式>[.W]):返回1-7的整数,表示星期几。 Weekday函数中,返回的星期值见表8.5所示。
例如:D = #2008-8-8#
YY = Year( D) ’返回2008 MM = Month(D) ’返回8 DD = Day( D) ’返回8
WD = Weekday(D) ’返回6,因2008-8-8为星期五 3.截取时间分量函数
Hour(<表达式>):返回时间表达式的小时数(0-23)。 Minute(<表达式>):返回时间表达式的分钟数(0-58) Second(<表达式>):返回时间表达式的秒数(0-59)。 例如:T = #10:40:11# HH = Hours(T) ’返回10 MM = Minute(T) ’返回40 SS = Second(T) ’返回11 4.日期/时间增加或减少一个时间间隔
DateAdd(<间隔类型>,<间隔值>,<表达式>):对表达式表示的日期按照间隔类型上或减去指定的时间间隔值。
注意,间隔类型参数表示时间间隔,为一个字符串,其设定值见表8.6所示;间隔值参数表示时间间隔的数目,数值可以为正数(得到未来的日期)或负数(得到过去的日期)。
例如:D = #2004-2-29 10:40:11#
D1 = DateAdd("YYYY",3,D) ’返回#2007-2-28 l0:40:11#,日期加3年 D2 = DateAdd ("q",1,D) ’返回#2004-5-29 10:40:11#,日期加1季度 D3 = DateAdd("m",-2,D) ’返回#2003-12-29 10:40:11#,日期减2月 D4 = DateAdd("d",3 ,D) ’返回#2004-3-3 10:40:11#,日期加3日 D5 = DateAdd("ww",2 ,D) ’返回#20Q4-3-14 10:40:11 #, 日期加2周 D6 = DateAdd("n",-150,D) ’返回#2004-2-29 8:10:11#,日期减150分钟 5.计算两个日期的间隔值函数
DateDiff(<间隔类型>,<日期1>,<日期2>[,W1][,W2]):返回日期1和日期2之间按照间隔类型所指定的时间间隔数目。
注意,间隔类型参数表示时间间隔,为一个字符串,其设定值见表8.6所示。参数W1为可选项,是一个指定一星期的第一天是星期几的常数,如省略,默认为vbSunday,即周日返回1、周一返回2,以此类推,其参数设定值见表8.5所示。参数W2也为可选项,是一个指定一年的第一周的常数,如省略,默认值为vhFirstJan 1 ,即包含1月1日的星期一为第一周,其参数设定值见表8.7所示。
例如:D1 = #2003-5-28 20:8:36# D2 = #2004-2-29 10:40:11#
n1 = DateDiff("yyyy",D1,D2) ’返回1,间隔1年 n2 = DateDiff("q",D1,D2) ’返回3,间隔3季度 n3 = DateDiff("m",D2,D1) ’返回-9,间隔9月
n4 = DateDiff("ww",D1,D2) ’返回40,间隔40周
n5 = DateDiff("n",D1,D2), ’返回398312,间隔398312分钟 6.返回日期指定时间部分函数
DatePart(<间隔类型>,<日期1>,<日期2>[,W1][,W2]):返回日期中按照间隔类型 所指定的时间部分值。
注意,间隔类型参数表示时间间隔,为一个字符串。其设定值见表8.6所示。参数W1为可选项,是一个指定一星期的第一天是星期几的常数,如省略,默认为vbSunday,即周日返回1、周一返回2,以此类推,其参数设定值见表8.5所示。参数W2也为可选项,是一个指定一年的第一周的常数,如省略,默认值为,vbFirstJan1,即包含1月1日的星期为第一周,其参数设定值见表8.7所示。 例如:D = #2004-2-29 10:40:11#
n1 = DatePart("yyyy",D) ’返回2004 n2 = DatePart("d",D) ’返回29 n3 = DatePart("ww",D) ’返回10 7.返回包含指定年月日的日期函数
DateSerial(表达式1,表达式2,表达式3):返回由表达式1值为年、表达式2值为月、表达式3值为日而组成的日期值。
注意,每个参数的取值范围应该是可接受的;即日的取值范围应在1-31之间,而月的取值范围应在1-12之间。此外,当任何一个参数的取值超出可接受的范围时,它会适时进位到下一个较大的时间单位。例如,如果指定了35天,则这个天数被解释成一个月加上多出来的日数,多出来的日数将由其年份与月份来决定。
例如:D = DateSerial(2008,2,29),返回#2008-2-29# D = DateSerial( 2008-l,8 -2,0),返回##2008-5-31#
四、类型转换函数
类型转换函数的功能是将数据类型转换成指定数据类型。例如,窗体文本框中显示的数值数据为字符串型,要想作为数值处理就应进行数据类型转换。表8.8中已经列出了“C-”开头的一些类型转换函数。下面再介绍另外一些类型转换函数。
1.字符串转换字符代码函数:Asc(<字符申表达式>)
返回字符申首字符的ASCII值。例如:s = Asc("abcdef"),返回97 2.字符代码转换字符函数:Chr(<字符代码>) 返回与字符代码相关的字符。例如:s = Chr(70),返回f;s = Chr(13),返回回车符 3.数字转换成字符串函数:Str(<数值表达式>)
将数值表达式值转换成字符串。注意,当一数字转成字符串时,总会在前头保留一空格来表示正负。表达式值为正,返回的字符串包含一前导空格表示有一正好。 例如:s = Str(99) ’返回“99”,有一前导空格 s = Str(-6) ’返回“-6” 4.字符串转换成数字函数:Val(<字符串表达式>)
将数字字符串转换成数值型数字。注意,数字串转换时可自动将字符串中的空格、制表符和换行符去掉,当遇到它不能识别为数字的第一个字符时,停止读入字符串。 例如:s = Val("") ’返回16 s = Val("") ’返回345 s = Val("") ’返回76
5.字符串转换日期函数:DateValue(<字符串表达式>)
将字符串转换为日期值。例如:D = DateValue("February 29, 2004"),返回#2004- 2-29# 6.Nz函数:Nz(表达式或字段属性值[,规定值」)
当一个表达式或字段属性值为Null时,函数可返回0、零长度字符申("")或其他指定位。例如,可以使用该函数将Null值转换为其他值。
当省略“规定值”参数时,如果“表达式或字段属性值”为数值型且值为Null, Nz函数返回0;如果“表达式或字段属性值”为字符型且值为Null, Nz函数返回空字符申("")。当“规定值”参数存在时,该参数能够返回一个除0或零长度字符申以外的其他值。
8.3.6 运算符和表达式
一、运算符
在VBA编程语言中,提供许多运算符来完成各种形式的运算和处理。根据运算不同,可以分成4种类型运算符:算术运算符、关系运算符、逻辑运算符和连接运算符。
1.算术运算符
用于算术运算,主要有乘暴(^)、乘法(*)、除法(/)、整数除法(\\)、求模运算(Mod)、加法(+)及减法(-)等7个运算符。
其中的加法(+)、减法(-)、乘法(*)和除法(/)4种运算符分别完成两个操作数的加法、减法、乘法和除法运算;整数除法(\\)运算符用来对两个数作除法并返回一个整数;求模运算(Mod)符用来对两个数作除法并且只返回余数;乘幂(^)运算符完成操作数的乘方运算。
注意,对于整数除法(\\)运算。如果操作数有小数都分,系统会舍去后再运算,如果结果有小数也要舍去。对于求模运算(Mod),如果操作数是小数,系统会四舍五入变成整数后再运算;如果被除数是负数,余数也是负数,反之,如果被除数是正数。
例如:
Dim MyValue ’变量定义 MyValue = 10 Mod 4 ’返回2 MyValue = 10 Mod 2 ’返回0 MyValue = 12 Mod -5 ’返回2 MyValue = -12.7 Mod -5 ’返回-3 MyValue = 3^2 ’返回9 MyValue = 2^2^2 ’返回16 MyValue = (-2)^3 ’返回-8 MyValue = 10.20\\4.9 ’返回2 MyValue = 9\\3 ’返回3 MyValue = 10\\3 ’返回3 2.关系运算符
用来表示两个或多个值或表达式之间的大小关系,有相等(=)、不等(<>)、小于(<)、大于(>)、小于相等(< =)和大于相等(> =)等6个运行符。
运用上述6个比较运算符可以对两个操作数进行大小比较。比较运算的结果为逻辑值:Ture或False,依据比较结果判定。 例如:
Dim MyValue ’变量定义 MyValue =(10 > 4) ’返回True MyValue =(1 >= 2) ’返回False