目录
基本数据类型 | 算术运算符 | 常用数学函数 |
数组的声明 | 日期型数据 | 常用日期与时间函数 |
Print函数 | 常用字符串函数 | 常用类型转换函数 |
比较运算符 | 逻辑运算真值表 | 代码模块、变量的作用域 |
通用过程 | 数据文件 | 图形方法 |
基本数据类型
数据 | 关键字 | 占用字节数 | 类型符 | 说明 |
整型 | integer | 2 | % | ±32768 |
长整型 | long | 4 | & | ±2147483648 |
单精度 | single | 4 | ! | 带小数的7位有效数字 |
双精度 | double | 8 | # | 带小数的15位有效数字 |
货币型 | currency | 8 | @ | 15位数字加四位小数 |
字节型 | byte | 1 | 0~255 | |
字符型 | string | 字符串长 | $ | 例如:Dim * as string*4 |
布尔型 | boolean | 2 | True或false | |
对象型 | object | 4 | 任何对象引用 | |
日期型 | date | 8 | 1/1/100~12/31/9999 | |
变体型 | variant | 按需分配 | ||
算术运算符
运算符 | 名称 | 优先级 |
^ | 乘方 | 1 |
- | 取负 | 2 |
*,/ | 乘,除 | 3 |
\ | 整除 | 4 |
mod | 求余的模运算 | 5 |
+,- | 加,减 | 6 |
常用数学函数
Abs(x) | 返回值与x相同 | 绝对值 | |||
Sin(x) | 返回值Double | 正弦 | |||
Tan(x) | 返回值Double | 正切 | |||
Sqr(x) | 返回值Double | 平方根 | |||
Cos(x) | 返回值Double | 余弦 | |||
Atn(x) | 返回值Double | 反正切 | |||
三角函数的自变量是弧度。例:47°应写成47*3.14159/180 | |||||
Exp | 返回值Double | e(自然对数)的幂值 | |||
Log | 返回值Double | 自然对数 | |||
Fix(x) | 返回值 Integer | 得到x的整数部分 | |||
Int(x) | 返回值Double | 不大于x的最大数 | 例:int(2)=2,int(-2.5)=-3 四舍五入:int(x+0.5) | ||
Fin(x) | 返回值Double | 取x的整数部分 | |||
Sgn(x) | 返回值Integer | 取x的符号 | Sgn(5)=1,sgn(0)=0,sgn(-5)=-1 | ||
Rnd(x) | 返回值Single | 随机数 | 产生0~x之间的随机数,不包括x | ||
取[a,b]区间的随机数的公式:Int((b-a+1)*Rnd+1) 初始化随机数生成器:Randomize(n)(n为整型数)或 Randomize | |||||
代码模块、变量的作用域
代码模块 | ||
Vb应用程序由3种模块组成,窗体模块、标准模块和类模块。 一个窗体对应一个窗体模块,窗体模块可以包括事件过程、通用过程及变量声明部分,这些部分连同窗体一起存入窗体文件(.form) 当一个应用程序有多个窗体,且这些窗体需要调用某一个通用过程时,需建立一个标准模块,在该标准模块中建立通用过程。 启动过程Sub main也存放在标准模块中。 默认情况下,标准模块中的代码是公有的,任何窗体或模块中的事件过程或过程都可以访问它。 类模块主要用来定义类和建立ActiveX组件。 | ||
变量的作用域 | ||
局部变量 | ||
过程中Dim | 局部变量中的动态变量,处理过后清零 | |
过程中Static | 局部变量中的静态变量,处理过后不清零 | |
不同的过程中可以用相同的局部变量名 | ||
模块级变量 | ||
声明中Dim|Private | 模块级变量,别的窗体或模块不能使用 | |
声明中 Public | 别的窗体可以用[窗体名.变量名]来引用 | |
全局变量 | ||
在标准模块的通用声明中 Global | Public | 可以被程序中任何一个窗体或模块直接访问 用Const定义的符号常量也能声明为全局 | |
常量 | ||
格式:[public|private]const 常量名[as 数据类型]=表达式(缺省为private) | ||
Public:可在整个程序中使用 | Private:只能在该过程范围中使用 | |
例:const PI=3.14159 | 例:const MAX as integer=876 | |
日期型数据
日期型数据的表示 | #08/20/2008# ,#2008-08-20# ,#2008-08-20 12:55:20 AM# | |
日期型数据的计算 | ||
两个日期型数据相减得到一个数值型数据 | #8/8/2008# - #6/3/2008# 结果为:66(天) | |
日期型数据加上数值型数据得到日期型数据 | #12/1/2008# +31结果为:#1/1/2009# | |
日期型数据减去数值型数据得到日期型数据 | #12/1/2008# -32结果为:#10/30/2008# | |
常用日期与时间函数
函数 | 返回值 | 功能 | 例子 | 结果 |
Date | Date | 返回系统日期 | Date | |
Time | Date | 返回系统时间 | Time | |
Now | Date | 返回系统日期和时间 | Now | |
Day | Integer | 返回天数 | Day(#2008/10/24#) | 24 |
Month | Integer | 返回月份数 | mouth(#2008/10/24#) | 10 |
Year | Integer | 返回年度数 | year(#2008/10/24#) | 2008 |
Weekday | Integer | 返回星期几返回值为1~7代表星期日到星期六 | weekday(#2008/10/24#) | 5 |
Hour | Integer | 返回小时数 | hour(#8:3:28PM#) | 20 |
Minute | Integer | 返回分钟数 | minute(#8:3:28PM#) | 3 |
Second | Integer | 返回秒数 | second(#8:3:28PM#) | 28 |
常用字符串函数
函数 | 返回值 | 功能 | 例子 | 结果 |
Len(字符串) | Integer | 字符串长度 | Len(“ABCD”) | 4 |
Left(字符串,n) | String | 取左边n个字符 | Left(“ABCD”,3) | “ABC” |
Righ(字符串,n) | String | 取右边n个字符 | Righ(“ABCD”,3) | “BCD” |
Mid(字符串,p[,n]) | String | 从第p个开始取n个字符若省略n,则得到从p后开始的所有字符 | Mid(“ABCDE”,2,3) Mid(“ABCDE”,2) | “BCD” “BCDE” |
Mid(字符串,p[,n])=子字符串 | String | 用子字符串替换从p开始于子字符串等长的一串字 若带n,则是用子字符串左起n个字符来替换从p开始的n个字符 | S=“ABCDE” Mid(S,3)=99 | S=“AB99E” |
Instr([f,]字符串1,字符串2[,k]) | Integer | 求字符串2在字符串1中出现的位置 f表示开始搜索的位置,默认为1 k表示是否区分大小写,默认为0区分,1为不区分 | Instr(“ABabc”,”ab”) Instr(3,”A12a34A56”,”A”) Instr(3,”A12a34A56”,”A”,1) | 3 7 4 |
String(n,字符) | String | 生成n个字符 可用ASCII码表示字符 | String(4,”*”) String(4,42) | “****” |
Space(n) | String | 生成n个空格 | Space(5) | 5个空格 |
Ltrim(字符串) | String | 去掉左边空格 | Ltrim(” ab “) | “ab “ |
Rtrim(字符串) | String | 去掉右边空格 | Rtrim(” ab “) | “ ab” |
Trim(字符串) | String | 去掉两边空格 | Trim(” ab “) | “ab” |
Lcase(字符串) | String | 转成小写 | Lcase(“ABab”) | “abab” |
Ucase(字符串) | String | 转成大写 | Ucase(“ABab”) | “ABAB” |
Strcomp(字符串1,字符串2[,k]) | Integer | 串1<串2 -1 串1=串2 0 串1>串2 1 | Strcomp(“AB”,”ABC”) | -1 |
常用类型转换函数
函数 | 返回值 | 功能 | 例子 | 结果 |
Val(x) | Double | 将数值字符串转换为数值 转换时会自动将空格去掉,并依据字符串中排列在前面的数值常量来定值 | 2+val(“12A12”) Val(“A12”) Val(“1.2e2”) | 14 0 120 |
Str(x) | String | 将数值转换为字符串,字符串首位表示符号 | Str(5) | “ 5” |
Asc(x) | Integer | 求字符串首字符的ASCII码 | Asc(”AB”) | 65 |
Chr(x) | String | 将x按照ASCII码转换成字符 | Chr(65) | “A” |
Cint(x) | Integer | 将x转换为整型数,小数位四舍五入 | Cint(1234.56) | 1235 |
Clng(x) | Long | 将x转换为长整型数,小数位四舍五入 | Clng(343.3) | 343 |
Csng(x) | Single | 将x舍入为单精度数 | Csng(56.5421117) | 56.54211 |
Cdbl(x) | Double | 将x转换成双精度数 | Cdbl(1234.5678) | 1234.5678 |
Ccur(x) | Currency | 将x转换成货币型数,四舍五入保留4位小数 | Ccur(123.45678) | 123.4568 |
Cvar(x) | Variant | 将x转换为变体型数 | Cvar(99&”00”) | “9900” |
Hex(x) | String | 将x转换成十六进制数 | Hex(31) | “1F” |
Oct(x) | String | 将x转换成八进制数 | Oct(20) | “24” |
Print函数
格式 | 功能 | 例 | 结果 vb所有代码 | |||
Spc(n) | 在输出下一项前插入n个空格 | Print “学号”;”姓名”;spc(5);”成绩” | 学号姓名 成绩 | |||
Tab(n) | 把输出位置移到第n列,当n大于行宽时,输出位置为n Mod行宽 | Print Tab(2); “学号”; Tab(10); “姓名”; Tab(18); “成绩” | 学号 姓名 成绩 | |||
Format函数 | ||||||
格式串 | 含义 | 例 | 结果 | |||
# | 数字占位符,显示一位数字 | a=4513.7:b=3456.78 timevar=#8:30:05 PM# print format (a,”##,###.##”) print format (a,”$##,###.00”) print format (b,”+##,###.#”) print format (timevar,”h:m:s”) | 4,,513.7 $4,513.70 +3,456.8 20:30:5 | |||
0 | 数字占位符,空位会补足0 | |||||
. | 小数点 | |||||
% | 百分比符号 | |||||
, | 千位分隔符 | |||||
e-,e+ | 科学计数法格式 | |||||
-,+,$ | 正负及美元符号,可以原样显示 | |||||
\ | 将格式串的下一个符号原样显示出来 | |||||
比较运算符及关系表达式示例
运算符 | 名称 | 关系表达式示例 | 结果 |
< | 小于 | 3<8 | true |
<= | 小于等于 | 2<=4 | true |
> | 大于 | 6>8 | false |
>= | 大于等于 | 7>=9 | false |
= | 等于 | ac = a | false |
< > | 不等于 | 3<>6 | true |
LIKE | 比较样式 | "abc"like “?b” | true |
IS | 比较对象变量 | ||
逻辑运算真值表
与 | 或 | 非 | 异或 | 等价 | 蕴涵 | ||
A | B | A and B | A or B | not A | A xor B | A eqv B | A xmp B |
True | True | True | True | False | False | True | True |
True | False | False | True | False | True | False | False |
False | True | False | True | True | True | False | True |
False | False | False | False | True | False | True | True |
逻辑运算表达式的运算顺序是:先进行算术运算,再做比较运算,最后进行逻辑运算,括号优先,同级运算从左到右执行。逻辑运算按not,and,or,xor,eqv,xmp的优先级执行 | |||||||
例:判断是否为闰年 条件:能被4整除但不能被100整除,或能被400整除 | |||||||
(y mod4=0 and y mod 100 <> 0)or(y mod 400 = 0) (int(y/4)=y/4 and int(y/100)<>y/100)or(int(y/400)=y/400) | |||||||
数组的声明
Dim数组名 ([下界1 to][上界1][,[下界2 to]上界2…])[as 数据类型] | |
Dim sum(10) as long Dim ary(1 to 15) as integer Dim d(1 to 5,1 to 20) as double | 下标号从0至10,共11个元素 下标号从1至15,共15个元素 定义而为数组 |
Option base n | 本语句在模块级声明段中使用,用来指定模块中数组下标的默认下界,n为数组的默认下界,只能是0或1 |
数组变量名=array(数组元素值) | 数组不能定义维数和上界,下界为默认 数组变量只能为变体类型 只能给一维数组赋值 |
Redim[preserve]数组名 ([下界1 to][上界1][,[下界2 to]上界2…])[as 数据类型] | |
在本语句重新定义的动态数组中每一维的上界和下界可以包含常量或变量表达式 当重新分配动态数组时,数组中的内容将被清除,但preserve可保持数据不变 如果已将一个数组声明为某种类型,不能再使用redim将该数组改为其他类型 可以用redim直接定义数组,通常只是用来重新声明数组大小 | |
Dim f as integer …… Size = 20 Redim f(size) …… | |
Erase数组名[,数组名]…… | |
该语句用来清除静态数组的内容或用来释放动态数组占用的内存空间 对于静态数组,经过处理就是内容清零变成空数组 对于动态数组,经过处理后就不存在了 | |
通用过程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论