VB中的常用函数
发布时间:2023-04-22 22:04:25浏览次数:861 VB 中常用的函数和语句一、Val 函数 返回包含于字符串内的数字,字符串中是一个适当类型的数值。 语法 Val(string) 必要的 string 参数可以是任何有效的字符串表达式. 说明 Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。 下面的返回值为 1615198: Val(" 1615 198th Street N.E.") 在下面的代码中,Val 为所示的十六进制数值返回十进制数值 -1。 Val("&HFFFF") 注意 Val 函数只会将句点(.)当成一个可用的小数点分隔符。当使用不同的小数点分隔符时,如在国际版应用程序中,代之以 CDbl 来把字符串转换为数字。 '===================================== Val 函数示例 本示例使用 Val 函数返回字符串中所含的数值。 Dim MyValue MyValue = Val("2457") ' 返回 2457。 MyValue = Val(" 2 45 7") ' 返回 2457。 MyValue = Val("24 and 57") ' 返回 24。参考资料:MSDN VB 参考
3) 对于用户定义的变量、过程名,以第一次定义的为准,以后输入的自动转换成首次定义的形式3. 语句书写规则 (1)在同一行上可以书写多行语句,语句间用冒号(:)分隔 (2)单行语句可以分多行书写,在本行后加续行符:空格和下划线 _ (3) 一行允许多达 255 个字符4. 程序的注释方式 (1)整行注释一般以 Rem 开头,也可以用撇号 '; (2)用撇号 ' 引导的注释,既可以是整行的,也可以直接放在语句的后面,最方便; (3)可以利用“编辑”工具栏的“设置注释块”、“解除注释块”来将设置多行注释。5. 保留行号和标号 VB 源程序接受行号与标号,但不是必须的(早期的 BASIC 语言中必须用行号)。 标号是以字母开始以冒号结束的字符串,一般用在 GOTO 语句(现在很少用)中。 2.2 VB 的语言基础1.数据类型 VB 的标准数据类型数据类型 关键字 类型符 前缀 存储空间 范围数值数据类型 字节型 Byte Byt 1 个字节 0 到 255 整型 Integer % Int 2 个字节 -32,768 到 32,767 长整型 Long & Lng 4 个字节 -2,147,483,648 到 2,147,483,647 单精度型 Single ! Sng 4 个字节 负数:-3.402823E38 到 -1.401298E-45;正数:1.401298E-45 到 3.402823E38 双精度型 Double # Dbl 8 个字节 负数: -1.79769313486232E308 - 4.94065645841247E-324;正数:4.94065645841247E-324 1.79769313486232E308 货币型 Currency @ Cur 8 个字节 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 逻辑型 Boolean Bln 2 个字节 True 或 False 日期型 Date Dtm 8 个字节 100 年 1 月 1 日 到 9999 年 12 月 31 日 对象型 Object Obj 4 个字节 任何 Object 引用 变长字符型 String $ Str 10 字节加字符串长度 0 到大约 20 亿 定长字符型 String $ Str 字符串长度 1 到大约 65,400 变体数字型 Variant Vnt 16 个字节 任何数字值,最大可达 Double 的范围 变体字符型 Variant Vnt 22 个字节加字符串长度 与变长 String 有相同的范围 注意:1)VB 中对没有声明的变量其缺省的数据类型是变体型,可以用来存储各种数据,但所占用的内存比其它类型都多。为提高运行效率(整型效率较高),或达到一定的运算精确度(浮点型精度较高,但运行较慢),应合理的定义数据类型。 2) 逻辑型数据只有 True 和 False 两个值,转换成整型时,True=-1 ,False=0,将其它类型转换成逻辑型时,非 0 数转换为 True ,0 转换为 False。 3) 字符型可以包括所有的西文字符和汉字,字符必须用双引号括" "起来, 如:"abc123"
4)货币型数据主要用来表示货币值,用 8 个字节存储,货币型是定点数,精确到小数点后面第 4 位,第五位四舍五入。整数部分最多 15 位。 例如:3.56@ 、 65.123456@都是货币型。 5)日期型数据按 8 字节的浮点数来存储,日期型数表示方式有两种:可以用号码符#括起来,也可以用数字序列表示(小数点左边的数字代表日期,右边代表时间,0 为午夜,0。5 为中午 12 点,负数表示是 1899 年 12 月 31 日前的日期和时间)。例:#1999-08-11 10:25:00 pm# #08/23/99# #03-25-75 20:30:00# #98,7,18#以上都是有效的日期型数据。在 VB 中会自动转换成 mm/dd/yy(月/日/年)的形式。 如:#3/22/2002# #2002-3-22 14:30:20# Dim T As Date T=-2.5 Print T ' 打印出来的结果是 1899-12-28 12:00:00 5)任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。用户定义的数据类型 格式:Type 数据类型名 数据类型元素名 1 As 类型名 数据类型元素名 2 As 类型名 …… 数据类型元素名 n As 类型名 End Type 说明: “数据类型名”是要定义的数据类型的名字,其命名规则与变量的命名规则相同。“数据类型元素名”同上,且不能是数组名;“类型名”可以是任何基本数据类型,也可以是用户定义类型。 举例:Type StuType xm As String*4 xh As Integer sx As Single yw As Single yy As SingleEnd Type 注意: 记录类型中的元素可以是变长字符串,也可以是定长字符串。当在随机文件中使用时,必须是定长字符串,其长度用类型名称加一个星号和常数指明。一般格式为:String*常数。
记录类型的定义必须放在模块(包括标准模块和窗体模块)的声明部分,在使用记录类型之前,必须用 Type 语句加以定义。在一般情况下,记录类型在标准模块中定义,其变量可以出现在工程的任何地方,当在标准模块中定义时,关键字 Type 前可以有 Public(默认)|Private,而如果在窗体模块中定义,则必须在前面加上关键字 Private。 在记录类型中不能使用动态数组。枚举类型 定义:将变量的值一一列举出来,变量的值仅限于列举出来的值的范围内。 格式: [Public|Private]Enum 类型名称 成员名 [=常数表达式 成员名 [=常数表达式] … End Enum 说明: (1)各参数说明: Public 与 Private 可选,前者表示所定义的 Enum 类型在整个工程中都可见,是默认选项,后者表示只能在所声明的模块中可见。 类型名称:表示所定义的 Enum 类型的名称。 成员名:用来指定所定义的 Enum 类型组成元素的名称。 常数表达式:可选,元素的值是 Long 类型。 (2)”常数表达式”可省。在默认情况下,枚举中的第一个常数被初始化为 0,其后的常数则初始化为比其前面的常数大 1 的数值。如: Public Enum Days Sunday Monday Tuesday Wednesday Thursday Friday Saturday End Enum其中,Sunday 的值为 0,Monday 的值为 1,其余依次类推。 (3)可以使用赋值语句给枚举中的常数赋值,所赋的值可以是任何长整数,包括负数。若希望用小于 0 的常数代表出错条件,则可以给枚举常数赋一个负值。如: Public Enum Workdays Saturday Sunday=0 Monday Tuesday Wednesday Thursday Friday Invalid=-1 End Enum
提问: 各成员的值各为多少? (4)VB 将枚举中的常数数值看作长整数。如果把一个浮点数值赋给一个枚举中的常数,VB会将该数值取整为最接近的长整数。 (5)当对一个枚举中的常数赋值时,可以使用另一个枚举中的常数的数值。例见书 P57。声明枚举类型后,就可以声明该枚举类型的变量,然后使用该变量存储枚举常数的数值。2.常量与变量(1) 常量在程序执行的过程中保持不变的数据称为常量。在 VB 中,常量分为两种,文字常量和符号常量。符号常量又分为用户自定义和系统定义两种。1) 文字常量(直接常量) 文字常量直接出现在代码中,也称为字面常量或直接常量,文字常量的表示形式决定它的类型和值。例如:字符型:"I am a student" 放在一对引号当中。数值型:3.14159、56、8.432E-15日期型:#3 jan,98# 放在一对#当中。逻辑型:True 、False 文字常量在程序中直接给出值的数据,如:123、123&、123.45、1.234E2 、123D3 分别表示整型、长整型、单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。 八进制常数: 在数值前加&O ,如 &O123 十六进制常数:在数值前加&H ,如&H123 2)用户声明的符号常量用 Const 来声明: Const 符号常量名 [As 类型] = 表达式 如:Const PI=3.14159 '声明了常量 PI,代表 3.14159,单精度型 Const MAX As Integer=&O144 ''声明了常量 MAX,代表八进制数144,整型
Const COUNT#=45.67 '声明了常量 COUNT,代表 45.67,双精度型 符号常量在程序中不可以再赋值了 3)系统提供的常量 系统定义的常量位于对象库中,在对象浏览器中的 Visual Basic(VB)和 Visual Basic for Aplication(VBA)等对象库中列出了 VB 的常量。这些常量可以与应用程序的对象、方法、属性一起使用。 如:Form1.WindowsState=vbMaximized 表示将窗口极大化。Form1.WindowsState=2(2)变量在程序执行过程中,其值可以改变的量称为变量。使用变量前,应首先定义所用到的变量(包括变量名和类型),使系统分配相应的内存空间,并确定该空间可存储的数据类型。所有变量都具有名字和类型。在 VB 中可以用类型说明语句或隐式说明来定义变量。 (1)变量或常量的命名规则 1) 必须以字母开头,由字母、数字或下划线组成,长度≤255 个字符; 2) 不能使用 VB 中的关键字,并尽量不与 VB 中标准函数名同名;如:Dim 、Sin 3)VB 中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示 4)为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。(2) 变量声明1) 用类型说明符来标识 Total% Amount# Lname$ 2)用 Dim 语句进行显式声明 语句形式: Dim 变量名 [As 类型] 如: Dim intX As integer说明: •除了 DIM 外,还有关键字: Private,Public,Static。•如果没有 As 类型,则默认为变体类型。 •可在变量名后加类型符来代替 As 类型 如: Dim intX%•若把多个变量都定义成同一类型,例如:把 X,Y,Z 都定义成双精度型,必须写成:Dim X as double,Y as double,Zas double如果写成:Dim x,y,z as double则 x,y 定义成可变类型,z 定义成双精度型。•一条语句可以同时定义多个变量,但每个变量必须有自己的类 型声明,类型声明不能共用; Dim a as integer,b as long,c as single •字符串变量根据其存放的长度是否固定,定义方法不同: 定长字符串: Dim strA As String*10 表示最多存放 10 个字符,如果赋值不足 10 个,则右补空;若
多于 10 个,则多余部分截去。不定长字符串:Dim strA As String ’最多可存放 2MB个字符3)Static 和 Dim 的区别 Dim:对变量进行初始化,将变量的值清空。 Static:为变量保留上一次运行的结果。4)局部变量、窗体/模块变量、全局变量A、 局部变量:在过程中进行定义。用 Dim、Static 进行定义, Public 不可以在过程中对变量进行定义。 在过程内部用 Dim 语句声明的变量,只在该过程内有效。这种变量称为局部变量。B、 窗体/模块变量(1) 在单工程、单窗体中定义窗体变量该变量可作用于该窗体中的任何一个过程。在窗体代码的声明部分时,则窗体以及窗体中各控件的事件过程都可以使用这些变量。Dim、Public 可用,Static 不可以用。(2) 单工程、多窗体中定义窗体变量该变量可作用于多个窗体的任何一个过程。在添加模块中定义,当用 Public 定义时可以作用于多窗体中,但用 Dim 可以定义,但不能作用于任何一个过程。即用 Dim 定义不起作用。综上所述:Dim 语句定义的变量其作用范围由 Dim 语句所在的位置决定。Dim 语句出现在窗体代码的声明部分时,则窗体以及窗体中各控件的事件过程都可以使用这些变量。这种变量称为窗体级变量;在过程内部用 Dim 语句声明的变量,只在该过程内有效。这种变量称为局部变量。关于变量的作用域, 4) 隐式声明VB 中允许变量不经过声明就直接使用,这种称为隐式声明,所有隐式声明的变量都是变体型的。 隐式声明容易造成错误,为了调试程序方便,一般对使用的变量都进行声明,可以在通用声明段使用 Option Explicit 语句来强制显式声明所有变量。当使用 Option Explicit 语句强制进行显式声明时,即使用类型说明符来标识3. 运算符(1) 算术运算符运算符 含义 优先级 示例 结果^ 乘方 1 Ia^2 9- 负号 2 -iA -3* 乘 3 IA* iA* iA 27/ 除 3 10/iA 3.33333333333333\ 整除 4 10\iA 3Mod 取模 5 10 Mod iA 1+ 加 6 10+iA 13- 减 7 IA-10 -7 说明:设表中的变量 iA=3, 为整型。
算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则自动转换为数值类型后再运算。(2) 字符串运算符运算符 作用 区别 示例 结果& 将两个字符串拼接起来 连接符两旁的操作数不管是字符型还是数值型,系统先将操作数转换成字符,然后再连接。 "123"&55"abc"+12 "12355""abc12"+ 连接符两旁的操作数均为字符型;若均为数值型则进行算术加法运算;若一个为数字字符型,一个数值型,则自动将数字字符转换为数值,然后进行算术加;若一个为非数字字符型,一个数值型,则出错。 "123"+55"abc"+12 178出错(3) 关系运算符运算符 含义 示例 结果= 等于 "ABCDE"="ABR" False> 大于 "ABCDE">"ABR" False>= 大于等于 "bc">="大小" False< 小于 23<3 False<= 小于等于 "23"<="3" True<> 不等于 "abc"<>"ABC" TrueLike 字符串匹配 "ABCDEFG" Like "*DE*" TrueIs 对象引用比较 注意: 1) 如果两个操作数都是数值型,则按其大小比较 2) 如果两个操作数都是字符型,则按字符的 ASCII 码值从左到右一一比较 3) 汉字字符大于西文字符 4) 关系运算符的优先级相同 5) VB6.0 中 Like 运算符与通配符的使用: ?表示任何单一字符 *——表示 0 个或多个字符 #——表示任何一个数字(0 - 9) [字符列表]——表示字符列表中的任何单一字符 [!字符列表]—— 表示不在字符列表中的任何单一字符(4) 逻辑运算符运算符 含义 优先级 说明 示例 结果Not 取反 1 当操作数为假时,结果为真 Not FNot T T FAnd 与 2 两个操作数均为真时,结果才为真 T And TF And FT And FF And T TF
FFOr 或 3 两个操作数中有一个为真时,结果为真 T Or TF Or FT Or FF Or T TFTTXor 异或 3 两个操作数不相同,结果才为真,否则为假 T Xor FT Xor T TFEqv 等价 4 两个操作数相同时,结果才为真 T Eqv FT Eqv T FTImp 蕴含 5 第一个操作数为真,第二个操作数为假时,结果才为假,其余都为真 T Imp FT Imp T FT 说明: 1)若有多个条件时,And 必须全部条件为真才为真;Or 只要有一个条件为真就为真。 2)如果逻辑运算符对数值进行运算,则以数字的二进制值逐位进行逻辑运算。And 运算常用于屏蔽某些位;Or 运算常用于把某些位置 1。 如:12 And 7 表示对 1100 与 0111 进行 And 运算,得到二进制值 100,结果为十进制4。 3)对一个数连续进行两次 Xor 操作,可恢复原值。在动画设计中,用 Xor 可恢复原来的背景。4.表达式 (1)表达式的组成 表达式由常量、变量、运算符、函数和圆括号按一定的规则组成,通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。 (2)表达式的书写规则 1)乘号不能省略 2)括号必须成对出现,均使用圆括号,可以嵌套,但必须配对。 3)表达式从左到右在同一基准上书写,无高低、大小之分。 例:sqr((3*x+y)-z)/(x*y)^4 (3)不同数据类型的转换 操作数的数据类型应该符合要求,不同的数据应该转换成同一类型。在算术运算中,如果操作数的数据精度不同,VB 规定运算结果采用精度较高的数据类型。 (4)优先级 同一表达式中,不同运算符的优先级是:算术运算符 > 字符运算符 > 关系运算符 > 逻辑运算符 注意:对于存在多种运算符的表达式,可增加圆括号改变优先级或使表达式更清晰。2.3 VB 的公共函数
1. 数学函数VB 中常用的数学函数函数名 功能 示例 结果Sqr(x) 求平方根 Sqr(9) 3Log(x) 求自然对数,x>0 Log(10) 2.3Exp(x) 求以 e 为底的幂值,即求 ex Exp(3) 20.086Abs(x) 求 x 的绝对值 Abs(-2.5) 2.5Hex[$](x) 求 x 的十六进制数,返回的是字符型值 Hex[$](28) "1C"Oct[$](x) 求 x 的八进制数,返回的是字符型值 Oct[$](10) "12"Sgn(x) 求 x 的符号, 当 x>0, 返回 1 ;x=0, 返回 0; x<0, 返回-1 Sgn(15) 1Rnd(x) 产生一个在(0,1)区间均匀分布的随机数,每次的值都不同;若 x=0,则给出的是上一次本函数产生的随机数 Rnd(x) 0-1 之间的数Sin(x) 求 x 的正弦值,x 的单位是弧度 Sin(0) 0Cos(x) 求 x 的余弦值,x 的单位是弧度 Cos(1) 0.54Tan(x) 求 x 的正切值,x 的单位是弧度 Tan(1) 1.56Atn(x) 求 x 的反正切值,x 的单位是弧度,函数返回的是弧度值 Atn(1) 0.792. 字符函数 (1)字符串编码 在 Windows 采用的 DBCS(Double Byte Character Set)编码方案中,一个汉字在计算机内存中占 2 个字节,一个西文字符(ASCII 码)占 1 个字节,但在 VB 中采用的是Unicode(ISO 字符标准)来存储字符的,所有字符都占 2 个字节。为方便使用,可以用StrConv 函数来对 Unicode 与 DBCS 进行转换,可以用函数 Len()函数求字符串的字符数,用 LenB()函数求字符串的字节数。 (2)常用的字符串函数函数名 功能 示例 结果Len(x) 求 x 字符串的字符长度(个数) Len("ab 技术") 4LenB(x) 求 x 字符串的字节个数 LenB("ab 技术") 8Left(x,n) 从 x 字符串左边取 n 个字符 Left("ABsYt",2) "AB"Right(x,n) 从 x 字符串右边取 n 个字符 Right("ABsYt",2) "Yt"Mid(x,n1,n2) 从 x 字符串左边第 n1 个位置开始向右取 n2 个字符 Mid("ABsYt",2,3) "BsY"Ucase(x) 将 x 字符串中所有小写字母改为大写 Ucase("ABsYug") ABSYUGLcase(x) 将 x 字符串中所有大写字母改为小写 Ucase("ABsYug") absyugLtrim(x) 去掉 x 左边的空格 Lrim(" ABC ") "ABC "Rtrim(x) 去掉 x 右边的空格 Trim(" ABC ") " ABC"Trim(x) 去掉 x 两边的空格 Trim(" ABC ") "ABC"Instr(x,"字符", M) 在 x 中查找给定的字符,返回该字符在 x 中的位置,M=1 不区分大小写,省略则区分 Instr("WBAC","B") 2String(n,"字符") 得到由 n 个首字符组成的一个字符串 String(3,"abcd") "aaa"Space (n) 得到 n 个空格 Space (3) "□□□"Replace(C,C1,C2,N1,N2) 在 C 字符串中从 N1 开始将 C2 替代 N2 次 C1,如果没有 N1 表示从 1 开始 Replace("ABCASAA","A","12",2,2) "ABC12S12A"
StrReverse (C) 将字符串反序 StrReverse ("abcd") "dcba"3. 日期与时间函数 常用的日期与时间函数函数名 含义 示例 结果Date () 返回系统日期 Date () 02-3-19Time() 返回系统时间 Time() 3:30 :00 PMNow 返回系统时间和日期 Now 02-3-19 3:30 :00Month(C) 返回月份代号(1-12) Month("02,03,19") 3Year(C) 返回年代号(1752-2078) Year("02-03-19") 2002Day(C) 返回日期代号(1-31) Day("02,03,19") 19MonthName(N) 返回月份名 MonthName(1) 一月WeekDay() 返回星期代号(1-7),星期日为 1 WeekDay("02,03,17") 1WeekDayName(N) 根据 N 返回星期名称, 1 为星期日 WeekDayName(4) 星期三 增减日期函数: DateAdd(要增减日期形式,增减量,要增减的日期变量) 例:计算期末考试日期:DateAdd("ww",15,#2002/3/19#) 求日期之差函数: DateDiff(要间隔日期形式,日期一,日期二) 例:计算距毕业天数: DateDiff("d", Now, #2005/6/30#) 日期形式日期形式 yyyy q m y d w ww h n s意义 年 季 月 一年的天数 日 一周的天数 星期 时 分 秒4. 转换函数函数名 功能 示例 结果Str (x) 将数值数据 x 转换成字符串 Str (45.2) "45.2"Val(x) 将字符串 x 中的数字转换成数值 Val("23ab") 23Chr(x) 返回以 x 为 ASCII 码的字符 Chr(65) "A"Asc(x) 给出字符 x 的 ASCII 码值,十进制数 Asc("a") 97Cint(x) 将数值型数据 x 的小数部分四舍五入取整 Cint(3.6) 4Int(x) 取小于等于 x 的最大整数 Int(-3.5)Int(3.5) -43Fix(x) 将数值型数据 x 的小数部分舍去 Fix(-3.5) - 3CBool(x) 将任何有效的数字字符串或数值转换成逻辑型 CBool(2) CBool("0") TrueFalseCByte(x) 将 0-255 之间的数值转换成字节型 CByte(6) 6CDate(x) 将有效的日期字符串转换成日期 CDate(#1990,2,23#) 1990-2-23CCur(x) 将数值数据 x 转换成货币型 CCur(25.6) 25.6Round(x,N) 在保留 N 位小数的情况下四舍五入取整 Round(2.86,1) 2.9CStr(x) 将 x 转换成字符串型 CStr(12) "12"CVar(x) 将数值型数据 x 转换成变体型 CVar("23")+"A" "23A"CSng(x) 将数值数据 x 转换成单精度型 CSng(23.5125468) 23.51255CDbl(x) 将数值数据 x 转换成双精度型 CDbl(23.5125468) 23.51254685. 格式输出 Format 函数 Format 函数用于制定字符串或数字的输出格式。
二、Str 函数返回代表一数值的 Variant (String)。 语法Str(number)必要的 number 参数为一 Long,其中可包含任何有效的数值表达式。说明当一数字转成字符串时,总会在前头保留一空位来表示正负。如果 number 为正,返回的字符串包含一前导空格暗示有一正号。使用 Format 函数可将数值转成必要的格式,如日期、时间、货币或其他用户自定义格式。与Str 不同的是,Format 函数不包含前导空格来放置 number 的正负号。注意 Str 函数只视句点 (.) 为有效的小数点。如果使用不同的小数点(例如,国际性的应用程序),可使用 CStr 将数字转成字符串。for example:Str 函数示例本示例使用 Str 函数来将一个数字转成字符串。当数字转成字符串时,字符串的第一个位一定是空格或是正负号。Dim MyStringMyString = Str(459) \' 返回 " 459"。MyString = Str(-459.65) \' 返回 "-459.65"。MyString = Str(459.001) \' 返回 " 459.001"。三、CStr 函数说明传回一个转换为 String 资料型态的运算式。语法
语法:x = Format (expression, fmt ) expression 是所输出的内容。fmt 是指输出的格式,这是一个字符串型的变量,这一项若省略的话,那么 Format 函数将和 Str 函数的功能差不多。如:语句 输出Format (2, “0.00”) 2.00 Format (.7, “0%”) 70% Format (1140, “$#,##0”) $1,140 fmt 字符的意义字符 意义 字符 意义 0 显示一数字,若此位置没有数字则补 0 . 小数点 # 显示一数字,若此位置没有数字则不显示 , 千位的分隔符 % 数字乘以 100 并在右边加上”%”号 - + $ ( ) 这些字出现在 fmt 里将原样打出 Format 函数对时间进行输出时的意义fmt 输出 fmt 输出m/d/yy 8/16/96 h:mm:ss a/p 10:41:29 p d-mmmm-yy 16-August-96 h:mm 22:41 d-mmmm 16-August h:mm:ss 22:41:29 mmmm-yy august-96 m/d/yy h:mm 8/16/96 22:41 hh:mm AM/PM 10:41 PM 6.InputBox 函数与 MsgBox 函数(1)InputBox 函数 语法:x = InputBox (prompt, title, default, xpos, ypos, helpfile, context) 其中,prompt 是提示的字符串,这个参数是必须的。title 是对话框的标题,是可选的 。default 是文本框里的缺省值,也是可选的。xpos,ypos 决定输入框的位置 。helpfile,context 用于显示与该框相关的帮助屏幕。返回值 x 将是用户在文本框里输入的数据,x 是一个字符串类型的值。如果用户按了 Cancel 钮,则 x 将为空字符串。(2)MsgBox 函数 语法:Action = MsgBox (msg, type, title)数值 符号常量 意义0 vbOKOnly 只显示 Ok 按钮 1 vbOKCancel 显示 Ok Cancel 按钮 2 vbAbortRetryIgnore 显示 Abor Retry Ignore 按钮 3 vbYesNoCancel 显示 Yes No Cancel 按钮 4 vbYesNo 显示 Yes No 按钮 5 vbRetryCancel 显示 Retry Cancel 按钮 16 vbCritical Stop Sign 对极其重要的问题提醒用户 32 vbQuestion Question Mark 增亮没有危险的问题 48 vbExclamation Exclamation Mark 强调警告用户必须知道的事情 64 vbInformation Information Mark 可以使乏味的信息变得有趣 0 vbDefaultButton1 第一个按钮缺省
256 vbDefaultButton2 第二个按钮缺省 512 vbDefaultButton3 第三个按钮缺省 Action 的值返回值 含义 返回值 含义1 选择 Ok 按钮 5 选择 Ignore 按钮 2 选择 Cancel 按钮 6 选择 Yes 按钮 3 选择 Abort 按钮 7 选择 No 按钮 4 选择 Retry 按钮2 常用函数Abs 函数 返回数的绝对值。 And 运算符 执行两个表达式的逻辑连接。 Array 函数 返回含一数组的 变体 。 Asc 函数 返回字符串首字母的 ANSI 字符代码。 赋值运算符 (=) 给变量或属性赋值。 Atn 函数 返回数的反正切值。 调用语句 将控制移交 Sub 或 Function 过程。 CBool 函数 返回已被转换为 Boolean 子类型的变体的表达式。 CByte 函数 返回已被转换为字节子类型的变体的表达式。 CCur 函数 返回已被转换为货币子类型的变体的表达式。 CDate 函数 返回已被转换为日期子类型的变体的表达式。 CDbl 函数 返回已被转换为双精度子类型的变体的表达式。 Chr 函数 返回指定 ANSI 字符码的字符。 CInt 函数 返回已被转换为整数子类型的变体的表达式。 Class 对象 提供对已创建的类的事件的访问。 Class 语句 声明类名 Clear 方法 清除 Err 对象的所有属性设置。 CLng 函数 返回已被转换为 Long 子类型的变体的表达式。 颜色常数 颜色常数列表。 比较常数 用于比较运算的常数列表。 连接运算符 (&) 强制两个表达式的字符串连接。 Const 语句 声明用于字母值的常数。 Cos 函数 返回角度的余弦值。
CreateObject 函数 创建并返回对“自动”对象的引用。 CSng 函数 返回已被转换为单精度子类型的变体的表达式。 CStr 函数 返回已被转换为字符串子类型的变体的表达式。 日期和时间常数 在日期和时间运算中用来定义星期几和其他常数的常数列表。 日期格式常数 用于日期和时间格式的常数列表。 Date 函数 返回当前系统日期。 DateAdd 函数 返回加上了指定的时间间隔的日期。 DateDiff 函数 返回两个日期之间的间隔。 DatePart 函数 返回给定日期 的指定部分。 DateSerial 函数 返回指定年月日的 日期子类型的变体 。 DateValue 函数 返回日期子类型的变体 。 Day 函数 返回日期,取值范围为 1 至 31。 Description 属性 返回或者设置说明某个错误的字符串。 Dictionary 对象 存储数据键、项目对的对象。 Dim 语句 声明变量并分配存储空间。 除法运算符 (/) 两数相除并以浮点数格式返回商。 Do...Loop 语句 当条件为 True 或者当条件变为 True 时,重复一语句块。 Empty 表示尚未初始化的变量值。 Eqv 运算符 使两个表达式相等。 Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的值。 Execute 方法 根据指定的字符串,执行正则表达式的搜索。 Execute 语句 执行单个或更多的指定语句。 Exit 语句 退出 Do...Loop、For...Next、 Function 或 Sub 代码块。 Exp 函数 返回 e (自然对数的底)的多少次方。 自乘运算符 (^) 指数函数,幂为自变量。 False 关键字,其值为零。 FileSystemObject 对象 提供对计算机文件系统的访问。 Filter 函数 根据指定的筛选条件,返回含有字符串数组子集的、下限为 0 的数组。 FirstIndex 属性 返回字符串匹配的位置。 Fix 函数 返回数的整数部分。 For...Next 语句 以指定的次数重复一组语句。 For Each...Next 语句 对于数组或集合中的每一个元素,重复一组语句。 FormatCurrency 函数 返回的表达式为货币值格式,其货币符号采用系统控制面板中定义的。 FormatDateTime 函数 返回格式化为日期或时间的表达式。 FormatNumber 函数 返回格式化为数的表达式。 FormatPercent 函数 返回格式化为百分比(乘以 100)的表达式,以 % 符号结尾。 Function 语句 声明形成 Function 过程体的名称、参数和代码。 GetObject 函数 从文件返回对“自动”对象的访问。 GetRef 函数 返回对可以绑定到事件的过程的引用。 Global 属性 设置或返回 Boolean 值。 Hex 函数 返回表示数的十六进制值的字符串。
HelpContext 属性 设置或返回帮助文件中某主题的上下文 ID。 HelpFile 属性 设置或返回帮助文件的全路径。 Hour 函数 返回小时数,取值范围为 0 至 23。 If...Then...Else 语句 根据表达式的值,有条件地执行一组语句。 IgnoreCase 属性 设置或返回 Boolean 值,指示模式搜索是否区分大小写。 Imp 运算符 执行两个表达式的逻辑隐含。 初始化事件 发生在创建相关类的实例时。 InputBox 函数 在对话框中显示提示,等待用户输入文本或者单击按钮,并返回文本框的内容。 InStr 函数 返回一个字符串在另一个字符串中第一次出现的位置。 InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 IsArray 函数 返回 Boolean 值,表示变量是否为数组。 IsDate 函数 返回 Boolean 值,表示表达式是否可以转换为日期。 IsEmpty 函数 返回 Boolean 值,表示变量是否已被初始化。 IsNull 函数 返回 Boolean 值,表示表达式是否含有无效数据 (Null)。 IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject 函数 返回 Boolean 值,表示表达式是否引用了有效的“自动”对象。 Join 函数 返回连接许多包含在一个数组中的子串而创建的字符串。 LBound 函数 对于指示的数组维数,返回最小的可用下标。 LCase 函数 返回已被转换为小写字母的字符串。 Left 函数 返回字符串最左边的指定数量的字符。 Len 函数 返回字符串中的字符数量,或者存储变量所需的字节数。 Length 属性 返回在搜索字符串中匹配的长度。 LoadPicture 函数 返回图片对象。仅用于 32 位平台。 Log 函数 返回数的自然对数。 LTrim 函数 返回去掉前导空格的字符串副本。 Match 对象 提供访问匹配正则表达式的只读属性。 Matches 集合 正则表达式匹配对象的集合。 Mid 函数 从字符串中返回指定数量的字符。 Minute 函数 返回小时内的分钟数,取值范围为 0 至 59。 杂项常数 不能纳入任何其他类的常数列表。 Mod 运算符 两数相除,只返回余数。 Month 函数 返回月份,取值范围为 1 至 12。 MonthName 函数 返回表示月份的字符串。 MsgBox 常数 与 MsgBox 函数一起使用的常数列表。 MsgBox 函数 在对话框中显示消息,等待用户单击按钮,并返回表示用户所击按钮的数值。 乘法运算符 (*) 两数相乘。 取反运算符 (-) 表示数值表达式的相反数。 Not 运算符 执行表达式的逻辑“非”运算。
Now 函数 返回当前计算机的系统日期和时间。 Nothing 使对象变量与所有实际的对象没有任何关联。 Null 表示变量含有无效的数据。 Number 属性 返回或设置代表某个错误的数值。 Oct 函数 返回表示一数的八进制值的字符串。 On Error 语句 启用错误处理。 运算符的优先级 表示各种 VBScript 运算符的优先顺序的列表。 Option Explicit 语句 强制显式声明脚本中的所有变量。 Or 运算符 执行两个表达式的逻辑“或”运算。 Pattern 属性 设置或返回正被搜索的正则表达式的模式。 Private 语句 声明私有变量并分配存储空间。 PropertyGet 语句 声明在窗体属性过程中获取(返回)属性值的名称,参数和代码。 PropertyLet 语句 声明在窗体属性过程中指定属性值的名称,参数和代码。 PropertySet 语句 声明在窗体属性过程中设置引用到对象的名称,参数和代码。 Public 语句 声明公有变量并分配存储空间。 Raise 方法 产生运行时错误。 Randomize 语句 初始化随机数发生器。 ReDim 语句 声明动态数组变量,并分配或重新分配过程级的存储空间。 RegExp 对象 提供简单正则表达式的支持。 Rem 语句 包含程序中的注释。 Replace 函数 返回一个字符串,其中某个指定的子串被另一个子串替换,替换的次数也有规定。 Replace 方法 替换在正则表达式搜索中已发现的正文。 RGB 函数 返回表示 RGB 颜色值的数。 Right 函数 返回字符串最右边的指定数量的字符。 Rnd 函数 返回一随机数。 Round 函数 返回指定位数、四舍五入的数。 RTrim 函数 返回去掉尾部空格的字符串副本。 ScriptEngine 函数 返回表示正在使用中的脚本语言的字符串。 ScriptEngineBuildVersion 函数 返回使用中的脚本引擎的编译版本号。 ScriptEngineMajorVersion 函数 返回使用中的脚本引擎的主版本号。 ScriptEngineMinorVersion 函数 返回使用中的脚本引擎的次版本号。 Second 函数 返回时间的秒数,取值范围为 0 至 59。 Select Case 语句 根据表达式的值,在若干组语句中选择一组执行。 Set 语句 将对象引用赋予变量或属性。 Sgn 函数 返回表示数的符号的整数。 Sin 函数 返回角度的正弦值。 Source 属性 返回最早出错的对象或应用程序的名称。 Space 函数 返回由指定数量的空格组成的字符串。 Split 函数 返回下限为 0 的、由指定数量的子串组成的一维数组。 Sqr 函数 返回数的平方根。 StrComp 函数 返回反映字符串比较结果的值。 字符串常数 字符串常数的列表。 String 函数 返回重复的字符串,达到指定的长度。
StrReverse 函数 返回一字符串,其中字符的顺序与指定的字符串中的顺序相反。 Sub 语句 声明形成 Sub 过程体的名称、参数和代码。 减法运算符 (-) 求两数之差,或表示某数值表达式的相反数。 Tan 函数 返回角度的正切值。 终结事件 发生在相关类的实例终结之时。 Test 方法 根据指定的字符串,执行正则表达式的搜索。 Time 函数 返回反映当前系统时间的日期子类型的变体。 Timer 函数 返回时经子夜 12:00 AM 后的秒数。 TimeSerial 函数 返回含有指定时分秒时间的日期子类型的变体。 TimeValue 函数 返回含有时间的日期子类型的变体。 Trim 函数 返回去掉前导空格或末尾空格的字符串副本。 三态常数 在代码中使用,以便表示每个显示的值。 True 其值为 -1 的关键字。 TypeName 函数 返回一字符串,它提供了关于变量的变体子类型信息。 UBound 函数 返回指定维数数组的最大有效下标。 UCase 函数 返回的字符串已经被转换为大写字母。 Value 属性 返回在搜索字符串中已发现匹配的值或正文。 VarType 常数 定义变体子类型的常数列表。 VarType 函数 返回标识变体子类型的数值。 VBScript 常数 在 VBScript 中提供不同种类的常数。 Weekday 函数 返回表示星期几的数值。 WeekdayName 函数 返回表示星期几的字符串。 While...Wend 语句 只要给定的条件为 True,便执行一串语句。 With 语句 对单个的对象执行一串语句。 Xor 运算符 执行两个表达式的逻辑“异或”运算。 Year 函数 返回表示年份的数值
CStr(expression) 引数 expression 可以是任何有效的运算式。注解通常,您可以使用资料型态转换函数,以特定的资料型态,取代预设的资料型态来进行运算。例如,使用 CStr 来强制将执行结果以 String 资料型态表示。 您可以使用 CStr 函数而非 Str 函数,在任何语言的版本中,让任何一个资料型态转换至 String 资料型态。例如,不同的小数点分隔符号,会依据您系统的国别设定来做适当的确认。引数 expression 将决定函数传回值为何,请叁考下表:若 expression 内容为 传回值 Boolean 包含 "True" 或 "False" 的字串。 Date 包含一个日期的字串,其格式为您系统的简短日期格式。 Null 产生执行时期错误。 Empty 一个长度为 0 的 字串 ("")。 Error 包含一个英文字 "Error" 以及一个错误代码的字串。 其他数值 包含这个数值的字串。 (一)类型转换类函数1. CType(X)[格式]:P=CBool(X) ' 将 X 转换为“布尔”(Boolean)类型P=CByte(X) ' 将 X 转换为“字节”(Byte)类型P=CCur(X)' 将 X 转换为“金额”(Currency)类型P=CDate(X)' 将 X 转换为“日期”(Date)类型P=CDbl(X)' 将 X 转换为“双精度”(Double)类型P=CInt(X)' 将 X 转换为“整型”(Integer)类型P=CLng(X)
' 将 X 转换为“长整型”(Long)类型P=CSng(X)' 将 X 转换为“单精度”(Single)类型P=CStr(X)' 将 X 转换为“字符串”(String)类型P=Cvar(X)' 将 X 转换为“变体型”(Variant)类型P=CVErr(X)' 将 X 转换为 Error 值[ 范例 ]:(1). CStr(13)+CStr(23)' 数值转换成字符串后,用"+"号连接, 结果:1323(2). CInt("12")+12' 字符串转换成整型后与 12 相加, 结果:24(3). P=CInt(True)' 输出结果为-1' 布尔值与数值的转换时要注意,布尔值只有 True 和 False,其中 True 在内存中为-1,False 存为 0 (4). CBool(-0.001)' 输出结果为 True' 将数值转换为布尔型时,等于 0 的数值将得到 False,不等于 0 的数值得到 True.2. Int(X),Fix(X):取 X 的整数值[格式]:P=Int(X) ' 取<=X 的最大整数值P=Fix(X) ' 取 X 的整数部分,直接去掉小数[范例]:(1) Int(-54.6)' 结果为-55,取<=-54.6 的最大整数(2) Fix(54.6)' 结果为 54,取整数并直接去掉小数(二)常用数学函数[格式]:1. Abs(N) 取绝对值例:Abs(-3.5) 结果:3.52. Cos(N) 余弦函数例:Cos(0) 结果:1
3. Exp(N) e 为底的指数函数例:Exp(3) 结果:20.0684. Log(N) 以 e 为底的自然对数例:Log(10) 结果:2.35. Rnd[(N)] 产生随机数例:Rnd 结果:0--1 之间的数6. Sin(N) 正弦函数例:Sin(0) 结果:07. Sgn(N) 符号函数' 说明:取正负号。Y=Sgn(X) 既 X>0 则 Y=1;X=0 则 Y=0;X<0 则 Y= -18. Sqr(N) 平方根例:Sqr(9) 结果:39. Tan(N) 正切函数例:Tan(0) 结果:010.Atn(N) 反切函数例:Atn(0) 结果:0[注意]:在三角函数中,以弧度表示。(一)字符串类函数:1. ASC(X),Chr(X):转换字符字符码[格式]:P=Asc(X) 返回字符串 X 的第一个字符的字符码P=Chr(X) 返回字符码等于 X 的字符[范例]:(1)P=Chr(65)‘ 输出字符 A,因为 A 的 ASCII 码等于 65(2)P=Asc(“A”)‘ 输出 652. Len(X): 计算字符串 X 的长度[格式]:P=Len(X)
[说明]:空字符串长度为 0,空格符也算一个字符,一个中文字虽然占用 2 Bytes,但也算一个字符。[范例]:(1) 令 X=”” (空字符串)Len(X) 输出结果为 0(2) 令 X=”abcd” Len(X) 输出结果为 4(3) 令 X=”VB 教程”Len(X) 输出结果为 43. Mid(X)函数:读取字符串 X 中间的字符[格式]:P=Mid(X,n)由 X 的第 n 个字符读起,读取后面的所有字符。P=Mid(X,n,m)由 X 的第 n 个字符读起,读取后面的 m 个字符。[范例]:(1) X=”abcdefg”P=Mid(X,5)结果为:P=”efg”(2) X=”abcdefg”P=Mid(X,2,4)结果为 P=”bcde”4. Replace: 将字符串中的某些特定字符串替换为其他字符串[格式]:P=Replace(X,S,R)[说明]:将字符串 X 中的字符串 S 替换为字符串 R,然后返回。[范例]:X=”VB is very good”P=Replace(X,good,nice)输出结果为:P=”VB is very nice”5. StrReverse:反转字符串[格式]:P=StrReverse(X)[说明]:返回 X 参数反转后的字符串
[范例]:(1)X=”abc”P=StrReverse(X)输出结果:P=”cba”6. Ucase(X),Lcase(X):转换英文字母的大小写[格式]:P=Lcase(X)‘ 将 X 字符串中的大写字母转换成小写P=Ucase(X)‘ 将 X 字符串中的小写字母转换成大写[说明]:除了英文字母外,其他字符或中文字都不会受到影响。[范例]:(1) 令 X=”VB and VC”则 Lcase(X)的结果为”vb and vc”,Ucase(X)的结果为”VB AND VC”7. InStr 函数:寻找字符串[格式]:P=InStr(X,Y)从 X 第一个字符起找出 Y 出现的位置P=InStr(n,X,Y)从 X 第 n 个字符起找出 Y 出现的位置[说明]:(1) 若在 X 中找到 Y,则返回值是 Y 第一个字符出现在 X 中的位置。(2) InStr(X,Y)相当于 InStr(1,X,Y)。(3) 若字符串长度,或 X 为空字符串,或在 X 中找不到 Y,则都返回 0。(4) 若 Y 为空字符串,则返回 0。日期时间类函数:1. Year(X),Month(X),Day(X):取出年,月,日[格式]:P=Year(X)取出 X“年”部分的数值P=Month(X)取出 X“月”部分的数值P=Day(X)取出 X“日”部分的数值[说明]:Year 返回的是公元年,若 X 里只有时间,没有日期,则日期视为#1899/12/30#2. Hour,Minute,Second 函数:取出时,分,或秒
[格式]:P=Hour(X)取出 X“时”部分的数值P=Minute(X)取出 X“分”部分的数值P=Second(X)取出 X“秒”部分的数值[说明]:Hour 的返回值是 0---23 之间[范例]:X=10:34:23P=Hour(X)Q=Minute(X)R=Second(X)则输出结果:P=10,Q=34,R=233. DateSerial 函数:合并年,月,日成为日期[格式]:DateSerial(Y,M,D)其中 Y 是年份,M 为月份,D 为日期[说明]:(1) M 值若大于 12,则月份从 12 月起向后推算 M-12 个月;若小于 1,则月份从 1 月起向后推算 1-M 个月。(2) 若日期 D 大于当月的日数,则日期从当月的日数起,向后推算 D-当月日数;若小于1,则日期从 1 日起向前推算 1-D 日。[范例]:P=DateSerial(2000,02,02)则结果为 P=2000/02/024.TimeSerial 函数:合并时,分,秒成为时间[格式]:P=TimeSerial(H,M,S)其中 H 为小时数,M 为分钟数,S 为秒数[说明]:推算原理同上面的 DateSerial[范例]:P=TimeSerial(6,32,45)结果为:P=6:32:455.Date,Time,Now 函数:读取系统的日期时间[格式]:P=Date()P=Time()P=Now()[说明]:这三个函数都无参数
[范例]:若当前时间为 2003 年 8 月 29 日晚上 19 点 26 分 45 秒,则P=Now()结果为:P=2003-08-29 19:26:456.MonthName:返回月份名称[格式]:P=MonthName(X)[说明]:X 参数可传入 1---12,则返回值为“一月”、“二月”……,但是在英文 Windows环境下,返回的是”January”,”February”……[范例]:P=MonthName(1)则 P=“一月”7.WeekdayName:返回星期名称[格式]:P=WeekdayName(X)[说明]:X 参数可传入 1—7,则返回值为“星期日”,“星期一”……,但是在英文windows 环境下,返回的是”Sunday”,”Monday”……[范例]:P=WeekdayName(1)结果为:P=”星期日” 回答者: qq9120673 - 四 级 2008-4-21 13:35速成的可能性不大,可以使用软件安装自带的帮助。理论上讲不会有什么函数语句大全,主要是自懂得怎么样去学习,而且系统内部函数也是人家编写出来的,我们自己也可以写。vb6.0 可以使用 F2 查看所有内部库。 回答者: suiy2004 - 五 级 2008-4-21 13:35第三章 VB 的程序设计基础2.1 VB 编码规则1. 语言元素 VB 的语言基础是 BASIC 语言,VB 程序的语言元素主要由: 关键字(如: Dim、Print、Cls) 函数(如:Sin()、Cos()Sqr()) 表达式(如:Abs(-23.5)+45*20/3 ) 语句(如:X=X+5 、 IF……ELSE……END IF)等组成。2. VB 代码书写规则 (1) 程序中不区分字母的大小写,Ab 与 AB 等效; (2) 系统对用户程序代码进行自动转换: 1) 对于 VB 中的关键字,首字母被转换成大写,其余转换成小写 2) 若关键字由多个英文单词组成,则将每个单词的首字母转换成大写