第 5章 Visual Basic语法基础本章的学习要点
基本数据类型和用户定义的数据类型
常量和变量
常用内部函数
算术运算符、关系运算符与逻辑运算符以及表达式的运算优先级数据是计算机处理的对象,也是运算产生的结果。
为了便于处理各式各样的数据,高级语言会将数据进行类型划分,即根据数据的用途不同将其定义为不同的数据类型 。
定义数据的类型后,既可以确定数据占用的存储空间,
又可以确定数据的处理范围 。
Visual Basic 6.0中将数据类型分为 基本数据类型 和用户自定义数据类型 。
5.1 数据类型
5.1 数据类型一、基本数据类型基本数据类型 是系统定义好的标准数据类型,
可以直接使用。
基本数据类型 可分为 6类,数值型,日期型,逻辑型,字符型,对象型 和 变体型,其中数值型数据又包括,整型,长整型,单精度型,双精度型,货币型 和 字节型 。
基本数据类型数据类型 关键字 类型符 前缀 占字节数 范围整型 Integer % Int 2 -32768~32767
长整型 Long & Lng 4 -2147483648~2147483647
单精度型 Single ! Sng 4 1.40E-45~3.40E+38
双精度型 Double # Dbl 8 4.94D-324~1.79D+308
货币型 Currency @ Cur 8 -9.22E+14~9.22E+14
字节型 Byte 无 Byt 1 0~255
日期型 Date 无 Dtm 8 01,01,100~12,31,9999
逻辑型 Boolean 无 Bln 2 True与 False
字符型 String $ Str 与字符串长度有关
0~65535个字符对象型 Object 无 Obj 4 任何对象引用变体型 Variant 无 vnt 根据分配确定上述有效范围之一数值型基本数据类型整数长整数整型单精度型双精度型实型货币型字节型数值型基本数据类型
数值型
整型是不带小数点的数据,和数学中整数的含义类似,只是整型数据取值范围在 -32768~ 32767之间,
存放在计算机中用 2个字节(即 16位)来表示。类型符为 %,即在数据尾加上 %就表示此数据为整型数据。
长整型和整型数据类似,都表示整数,但所能表示的数据范围比整型大,取值范围为 -2147483648~
2147483647,长整型数据在计算机中用 4个字节表示。
类型符为 &。
例如,2%表示 2以整型数据存储。
例如,5&表示 5为长整型数据存储。
基本数据类型
数值型
单精度型带小数点的实数,在计算机中用 4个字节来存储,有效数字为 7位,通常单精度型数据以指数形式表示,指数部分用 E或 e表示。
双精度型带小数点的实数,有效数字为 15或 16位,在计算机内用 8个字节存储,比单精度型数据精度更高。双精度型数据也以指数形式表示,指数部分用 D或 d表示。
例如,3.6e+5表示数学中的 3.6× 105,7.45E-6表示 7.45× 10-6
例如,55.87d+5表示数学中的 55.87× 105,7.45D-6表示 7.45× 10-6。
基本数据类型
数值型
货币型是为了计算货币而设置的定点实数或整数,它的精度要求比较高,在计算机中用 8个字节存储。类型符为 @。
字节型是范围在 0~ 255之间的无符号的整数,在计算机中仅用一个字节表示,因此称为字节型数据。
例如,23.5@表示 23.5以货币型数据存储。
基本数据类型
日期型表示在 公元 100年 1月 1日~ 9999年 12月 31日 之间的日期和时间数据,日期型数据用 #括起来标识。
逻辑型逻辑型数据也称为布尔型数据,用来表示逻辑判断的结果。它只有真( True)和假( False)
两种取值情况。
例如,#7/25/2006#表示 2006年 7月 25日。
数值型数据 逻辑型数据数据转换数值型数据 逻辑型数据
0 False
非 0 True
0 False
-1 True
基本数据类型
字符型用双引号括起来的一串字符,字符型数据可以有两种,定长字符串 和 变长字符串 。
定义变长字符串时,其后加上,*”和数字,
表示该字符串的长度为该数字表示的字节数,例:
Dim a As String * 6,表示定义变量 a是一个含 6
个字符的定长字符串数据。
对象型对象型数据主要用于定义应用程序中定义的对象的类型。
基本数据类型
变体型变体型数据可以表示任何一种数据类型,其大小由所赋予的数据类型决定。
说明:
(1) 不同类型的数据,所占的存储空间不一样。
(2) 数据的类型可在数据之后加上一个类型符来表示,例如,413&,86!,104.67#等 。
例如:
dim a As Variant '定义 a为变体型数据
a=123 'a为整形数据
a="visual basic" 'a为字符型数据用户自定义数据类型
用户自定义数据类型是根据用户需要在已存在的基本数据类型基础上组合而形成的新的数据类型。
格式:
[Private|Public] Type 用户自定义类型名元素名 1 As 数据类型元素名 2 As 数据类型

End Type
元素名为自定义数据类型中的一个成员类型类型为上述基本类型或自定义数据类型用户自定义数据类型
例如,一个学生的信息可以定义为用户自定义的数据类型。根据需要,可以定义一个包括学生的学号(字符型数据)、姓名(字符型数据)、出生日期(日期型数据)
等新的自定义数据类型以方便使用。
Private Type Student
SNo As String * 10
SName As String * 10
SBirth As Data
End Type
5.2 常量和变量在 Visual Basic中,标识符 是程序员为变量、常量、
数据类型、过程、函数、类等定义的名字。
标识符的命名规则
( 1)标识符必须以字母开头,可以由字母、数字或下划线组成。
( 2)标识符的长度不能超过 255个字符,控件、窗体、
类和模块的名字不能超过 40个字符。
( 3)自定义的标识符不能和 VB中的运算符、语句、函数和过程名等关键字同名,同时也不能与系统已有的方法和属性同名。
( 4)保证标识符在同一范围内是惟一的。
5.2 常量和变量
常量常量也称为常数。 Visual Basic中,用常量表示在整个程序中事先设置的、不会改变数值的数据。
常量分为:
常量的数据类型可以是任何一种数据类型。
直接常量 符号常量
5.2 常量和变量
常量
直接常量直接常量是在程序中直接给出的数值、字符、
日期等具体的数据值。按照数据类型分类,可以将直接常量分为以下几类:
字节型、整型和长整型常量单精度和双精度浮点型常量逻辑型常量字符型常量直接常量 日期型常量字符型常量的引号必须是西文双引号
5.2 常量和变量
常量
符号常量符号常量是用一个标识符代表一个直接常量,用这个标识符作为常量名。
用户自定义的符号常量,定义格式:
系统内部定义常量用户自定义的符号常量符号常量
Const 符号常量名 [As 数据类型 ]= 常量表达式
Const Pi=3.141592653589 As Singer
Const Da=#1/1/68#
Const M As Integer=45,D="tea" as String
5.2 常量和变量
变量变量是在程序执行过程中,其值能够改变的量。
变量名的命名遵循标识符的命名规则。在变量使用之前需要对变量所描述数据的数据类型进行声明。
在变量使用之前提前声明变量称为 显式声明 ;没提前声明而直接使用则称之为 隐式声明 。
显式声明
{Dim | Public | Private | Static} 变量名 1
[As 类型 1 ][,变量名 2 [As 类型 2 ]]?
Dim a As Integer
Dim c
5.2 常量和变量
变量
隐性声明
如果没有声明就直接使用,Visual Basic会自动根据数据值对其规定数据类型。
后缀法声明
在 Visual Basic中,对有些数据类型的变量,
允许直接在变量名后面加上数据类型符(即后缀),指定该变量的数据类型。
X=35 'X为 Integer类型
Y="Visual Basic 6.0编程 " 'Y为 String类型
xa% '变量 xa是整型数据
xb@ '变量 xb是货币型数据
xc$ '变量 xc是字符型数据
5.2 常量和变量
强制显式声明变量语句
Visual Basic虽然不要求必须对变量进行声明,
但是不声明变量经常会出现很多错误,所以一般编程者希望在运行程序之前由系统编译器帮助检查程序中是否有未显式声明的变量,如果希望这样做,
可以在通用声明部分用强制显式声明语句。格式,
这个语句所实现的功能也可以通过 Visual Basic
系统的选项功能来设置,打开“工具” →,选项”
菜单项,在“编辑器”选项卡下,选中“要求变量声明”,同样可以达到这样的功能。
Option Explicit
选择
5.3 运算符和表达式运算 是对数据进行加工的过程,描述不同运算的符号称为 运算符,参与运算的数据称为 操作数 。
在 VB中,运算符有 算术运算符,字符串运算符,关系运算符,逻辑运算符 。
表达式 用来表示某个求值规则,可以由关键字、运算符、常量、变量、函数、对象和配对的圆括号以合适的形式组合而成。
每个表达式都有一个惟一的值作为表达式的值。根据运算符的不同,可以将表达式分为 算术表达式,字符串表达式,关系表达式,逻辑表达式 。
5.3.1 算术运算符及其表达式
算术运算符是专用来进行数学计算的运算符。 Visual
Basic提供的算术运算符共有 7个,除 负号 为 单目运算符 外,其余的都为 双目运算符,即需要两个操作数完成的运算。
算术运算符 含义 示例 结果 优先级
^ 乘方 3^2 9 1
- 负号 -5 -5 2
* 乘 4*5 20 3
/ 除 3/10 0.3 3
\ 整除 2\5 0 4
Mod 取模 /取余 6 Mod 5 1 5
+ 加 2+8 10 6
- 减 5-1 4 6
5.3.1 算术运算符及其表达式
算术表达式 是由 算术运算符 连接操作数构成的表达式,
其运算结果是数值。由于一个表达式中可能出现多种算术运算符,所以计算的时候要按照优先级来进行运算,
优先级越高的越先计算。圆括号可以改变优先级,括号内的优先级最高。
算术运算符的操作数 可以 是 数值型,数字字符型 或 逻辑型 。计算时 数字字符型 和 逻辑型数据 自动转换为 数值型后再参与运算。
逻辑型数字字符型数值型 运算注 意
+,-,*,/的运算规则和数学里面的运算规则一样,
计算时按照“先乘除,后加减”的规则计算。
整除 运算的运算规则是先计算两个整数的商,再丢弃商值的小数部分。若参加运算的除数或被除数不是整数,则按照四舍五入的方法先进行取整,然后再按照整除运算的规则计算结果。例如 8\3的结果是 2,
5.8\3的结果是 2。
注 意
a MOD b的值为 a整除 b后的余数,如果参加计算的数据是小数,先对它们进行四舍五入取整,然后再完成求模运算。
如果参加运算的有负数,用绝对值参加取模运算,运算结果的符号和 a的符号一致。例如,5.6 MOD 3的结果是 0,-5
MOD 3的结果是 -2。
,+”,,-” 也可以对日期型数据进行计算,用来计算日期之间的关系,如 #12/19/1999# - #11/16/1999#的结果为
33,表示 1999年 12月 19日到 1999年 11月 16日之间有 33天。
#11/16/1999# + 33的结果为 #12/19/1999#,表示从 1999年
11月 16日后推 33天是 1999年 12月 19日。
5.3.1 算术运算符及其表达式
例 1:若有如下程序,分别声明变量 a,b分别赋值为 2
和 3,在窗体的单击事件中测试各种算术运算的结果。
Private Sub Form_Click()
a = 2,b = 3
Print a + b,a - b
Print a * b,a Mod b
Print a / b,a \ b
Print a ^ b
End Sub
两行语句一行书写编写的窗体单击事件过程代码如下:
Private Sub Form_Click()
Dim x As Integer,a As Integer
Dim b As Integer,c As Integer
x = 36
a = x \ 10 '求十位数
b = x Mod 10 '求个位数
c = b * 10 + a '生成新的数
Print "处理后的数,"; c
End Sub
例 2,给定一个两位正整数 (如 36),交换个位数和十位数的位置,并将处理后的结果显示在窗体上。
运行程序后单击窗体,输出结果是:处理后的数,63
5.3.1 算术运算符及其表达式将数学公式转换为 VB表达式
)2)(1(
30s in
32
1

yx
ba
程序中写为:
Sqr(a+b)*sin(30*3.14/180)/((x1^2+1)*(y^3-2))
5.3.2 字符串运算符及其表达式
字符串运算符 的作用是实现字符串的连接,也称连接运算符,字符串运算符有 &和 +。
当参加运算的操作数都是字符型数据时,两运算符的作用和结果相同,都是将两个字符串连接起来,组成一个新的字符串。
当连接运算的操作数并非都为字符串的时候,两个连接运算符的结果有所差别。 &连接符在任何时候都做字符串连接操作,如果操作数有非字符串数据,先将其转换为对应的字符串数据,再进行连接操作。
"xyz" + "123" '结果为新字符串 "xyz123"
"xyz" & "123" '结果为新字符串 "xyz123"
"123" & "xyz" '结果为新字符串 "123xyz"
123 & 456 '结果为新字符串 "123456"
123 & "xyz" '结果为新字符串 "123xyz"
5.3.2 字符串运算符及其表达式
当 +连接符作为运算符时,若其中一个字符串为数字字符型数据,另一个为数值型数据时,先将数字字符型变为数值型,再实现算术加法运算;若两个都为数值型数据,则直接按照算术运算符实现加法运算;若其中一个为数值型数据,另外一个为非数字字符型数据,
系统则会提示出错。
"123"+45 '结果为数据 168
123+45 '结果为数据 168
"Visual Basic 编程 "+45 '程序会提示出错为了避免,+”做连接运算时与加法运算混淆,一般都使用 &作为连接符号使用,但使用,&”连接符时必须在,&”的前面和后面各增加一个空格避免出错。这是因为符号,&”的另一个含义是长整型的类型符,如果变量与符号 &接在一起,VB系统先把它作为类型定义符处理,因而会出现语法错误。
例如:
"100" + 123 ' 结果为 223
"100" + "123" ' 结果为 "100123"
"Abc" + 123 ' 出错
"100,& 123 ' 结果为 "100123"
100 & 123 ' 结果为 "100123"
"Abc" & "123" ' 结果为 "Abc123"
"Abc" & 123 ' 结果为 "Abc123"
想一想
5.3.2 字符串运算符及其表达式
例 3 编写一个简单的加法程序,用两个文本框存放被加数和加数,另外一个文本框存放结果,单击“计算”按钮将计算结果显示在结果框中,单击“算式”
按钮将整个算式完整显示在算式的标签中。
5.3.2 字符串运算符及其表达式
Private Sub Command1_Click()
Dim s1 As Integer,s2 As Integer,s3 As Integer
s1 = Val(Text1.Text)
s2 = Val(Text2.Text)
s3 = s1 + s2
Text3.Text = s3
End Sub
Private Sub Command2_Click()
Label3.Caption = Label3.Caption & Text1.Text & "+" & _
Text2.Text & "=" & Text3.Text
End Sub
5.3.2 字符串运算符及其表达式练 习
Private sub form_click()
a=,武汉”,b=,科技大学”
print a & b
print a+b
c=123
print c & 4,c &,4”
print c+4,c+”4”
d=“123”
print d & 4,d &,4”
print d+4,d+”4”
End sub
想一想
5.3.3 关系运算符及其表达式
关系运算符也称为比较运算符,用来比较两个操作数之间的大小关系,操作数 可以是 数值型数据,字符
(串)型数据,日期型数据 等,但不能是逻辑型数据,
若为逻辑型数据则需要根据逻辑型数据向数值型数据转换的规则转换后再进行运算。关系运算的结果是逻辑值,即运算的结果只有 True和 False两种。
数值型数据字符型数据日期型数据逻辑型数据 数值型数据运算
5.3.3 关系运算符及其表达式算术运算符 含义 示例 结果 优先级
= 等于 "abc"="abd" False
算术运算符具有相同的优先级
> 大于 (3+5)>2 True
>= 大于等于 "abc">="abd" False
< 小于 "abc"<"abc" False
<= 小于等于 "23"<="4" True
<> 不等于 "a"<>"A" True
5.3.3 关系运算符及其表达式
数值型数据在进行比较的时候,直接比较其值大小。
例如,5>3的结果为 True。
日期型数据比较大小时,VB会把日期型数据看成一个 yyyymmdd的
8位整数,按照数值比较其大小。
例如,#1999-5-6#>#2003-6-13#的结果为 False。
字符型数据比较大小时,若为单个字符,比较其 ASCII码值;若为字符串时,依次从左边第一个字符开始比较,直到发现一个不相同的为止,由第一个不相同的字符的大小的关系代表字符串的大小,若字符串长度不相等,短字符串尾部可以补空格比较。常见的字符值由对应的 ASCII码表中的顺序决定.
常见字符 ASCII码大小关系如下:
例如,"sab">"aab"的结果为 True; "abc"="ABC"的结果为 False。
"空格 "<…… <"0"<"1"<…… <"9"<……
<"A"<"B"<…… <"Y"<"Z"<……
<"a"<"b"<…… <"y"<"z"<"任何汉字 "
关系运算的规则如下:
( 1)当两个操作数均为数值型,按数值大小比较。
( 2)字符串比较,则按字符的 ASCII码值从左到右一一比较,直到出现不同的字符为止,。
例," ABCDE " > " ABRA "
结果为 False
5.3.3 关系运算符
10 <= 3 < 20
5.3.3 关系运算符及其表达式
逻辑值不能参加运算,如果比较中出现逻辑值,先将逻辑值转换为对应的数值型数据再进行比较。例如:
10 <= 3 < 20的结果先计算 10<=3的结果为 False,然后将 False转换为数值 0,将结果再和 20比较,结果为
True。
False
0
True
5.3.3 关系运算符及其表达式
数值型数据与数字字符型数据比较时,将字符型数据转换为对应的数值型数据进行计算,
如,29>"189",按数值比较,结果为 False;数值型与不能转换成数值型的字符型比较,如:
77>"sdcd",不能比较,系统将提示出错。
关系运算没有优先级,也可以认为具有相同的优先级,
所以计算的时候按照从左到右的顺序进行计算。
例:
Private sub form_click()
print 3>2 and 3<4
print not (3>2 and 3<4)
print 1>3 or 2<3
Print 10 <= 3 < 20
End sub
想一想练 习
Private sub form_click()
a = 1,b = 2,c = 3
Print a + 5 >= b * 3
Print "Visual Basic" < "Pascal"
Print "qaz" = "QAZ"
Print a <> b
End sub
想一想
5.3.4 逻辑运算符及其表达式
逻辑运算符亦称为布尔运算符,用来对逻辑型数据进行各种逻辑运算,它的操作数经常是关系表达式或逻辑型数据,其结果也仍然是逻辑型数据,即 True或
False。
算术运算符 含义 优先级
Not 逻辑非 1
And 逻辑与 2
Or 逻辑或 3
Xor 逻辑异或 4
Eqv 逻辑同或 5
Imp 逻辑蕴涵 6
5.3.4 逻辑运算符及其表达式
逻辑运算的结果比较复杂,运算规则如表下:
A B Not A A And B A Or B A Xor B A Eqv B A Imp B
True True False True True False True True
True False False False True True False False
False True True False True True False True
False False True False False False True True
5.3.4 逻辑运算符及其表达式
计算逻辑表达式时,如果存在关系表达式,关系表达式的优先级高,先运算关系表达式,再运算逻辑表达式,如,4>5 And 5<3的结果为 False。
数学上表示某个数在某个值域范围内时用表达式
10≤X<20,用 VB程序中应写成,X>= 10 And
X<20。
例:
Private sub form_click()
print 3>2 and 3<4
print not (3>2 and 3<4)
print 1>3 or 2<3
Print 10 <= 3 < 20
End sub
想一想
5.3.5 运算符优先级
每种同类型的运算符都有内部的运算符优先级,一个表达式中可以包括不同的运算符和函数,当各种算符出现在同一个表达式中时,也应该按照不同类型运算符的优先级进行运算。各种运算符的优先级如下:
数值运算符 >字符串运算符 >关系运算符 >逻辑运算符
可以用括号改变优先顺序,使得括号内的运算优先级高于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。
Visual Basic表达式的书写规则
( 1)每个符号占一个位置,必须在同一基准并排书写所有符号都不能出现在上标、下标,如,23应该写成
2^3,x1要写成 x1。
( 2)数学表达式中省略的乘号必须要写上,如数学表达式 2x的 VB算术表达式是 2*x,否则含义就不同了。
( 3)所有的括号都应该用(),括号必须配对,不能出现 [ ]或者 { }。
( 4)数学中的有些符号不能出现在 VB中,如 ±,α,
β,∑,∏ 等。
5.4 常用内部函数调用 VB提供的内部函数的方法有两种:
第一种方法:
函数名(参数列表)
第二种方法:
函数名说明:
( 1)使用库函数要注意参数的个数及其参数的数据类型。
( 2)要注意函数的定义域(自变量或参数的取值范围)。
例如,sqr(x) 要求 x>=0。
( 3)注意函数的值域。例如,exp(23773) 的值就超出实数在计算机中表示的范围。
数学函数函数 含义 示例 结果
Atn 返回弧度的正切值 Atn(1),785398163?
Cos 返回弧度的余弦值 Cos(1),540302305?
Sin 返回弧度的正弦值 Sin(1),841470984?
Tan 返回弧度的正切值 Tan(1) 1.55740724?
在三角函数中的自变量是以 弧度 为单位。
如,sin300?将 30度转换为弧度
sin(3.14159/180*30)
数学函数
Abs( 1) 正数 1
Abs( -5) 负数 5
函数 含义 示例 结果
Abs 返回数的绝对值 Abs(-3.2) 3.2
函数 含义 示例 结果
Exp 返回 e的指定次幂 Exp(1) 2.718281828
Exp( 1) e1(e=2.718281828)
Exp( -5) e-5(6.73794699908547E-03)
数学函数符号函数 Sgn返回值有三种:
Sgn(-3)=-1(参数为负数 )
Sgn(0)= 0
Sgn(3)=1 (参数为正数 )
函数 含义 示例 结果
Sgn 返回数的符号值 Sgn(-2) -1
函数含义 示例 结果
Sqr 返回数的平方根值 Sqr(9) 3只有非负数才有平方根(可以是实数)
Sqr(9)
Sqr(9,56)
数学函数
Fix( 10.4) 10 Fix( -5.6) -5
函数 含义 示例 结果
Fix 返回数的整数部分 (直接取整 ) Fix(-50.6) -50
函数 含义 示例 结果
Int 返回不大于给定数的最大整数 Int(-50.6) -51
Int(50.6)→ 50 Int(-50.6)→ -51
0
50.6
50 51
-50.6
-51 -50
当 x≥0时就直接舍去小数若 x< 0则舍去小数位后再减 1
随机数函数
直接使用 Rnd函数每次得到的序列都是一样的,在使用中有时希望每次都得到不同的序列,那么就可以使用 Randomize随机数种子生成器语句,使用在 Rnd函数之前,这样可以使得 Rnd函数产生的随机数为不同的序列。
函数 含义 示例 结果
Rnd[(x)]返回小于 1且大于或等于 0的随机数 Rnd 0~ 1间的随机数随机数函数
在实际使用中可能需要的随机数要扩大范围或者限制在特定范围内,若要得到 0~ 50间(不包括 50)的随机数,直接可以用得到的随机数乘以 50,扩大随机数范围,即,Rnd*50。
若要产生 1-100的随机整数,Int(Rnd *100)+1
Int(4*Rnd+1)可以产生 1~ 4之间 (含 1和 4)的随机整数
Rnd函数返回 0 ~ 1(包括 0和不包括 1)之间的数。
Rnd通常与 Int函数配合使用。
若要生成 [a,b]区间范围内的 随机整数,可以用公式
Int((b-a+1)*Rnd + a)
使用 Rnd函数之前,先用 Randomize语句来初始化随机数生成器
例 通过随机函数产生 2个两位正整数,求这 2个数之和并显示出来随机数函数编写的窗体单击事件过程代码如下:
Private Sub Form_Click()
Dim a As Integer,b As Integer,c As Integer
Randomize '初始化随机数生成器
a = Int(90 * Rnd + 10) '产生 [10,99]区间内的随机整数
b = Int(90 * Rnd + 10)
c = a + b '求两数之和
Print "产生的两个随机数,"; a,b
Print "和数,"; c
End Sub
随机数函数字符串函数函数 含义
Ltrim$ 去掉字符串 Str左边的空白字符,并返回
Rtrim$ 去掉字符串 Str右边的空白字符,并返回
Trim$ 去掉字符串 Str左边和右边的空白字符,并返回
Ltrim(" abcd ") = "abcd "
Rtrim(" abcd ") = " abcd"
Trim(" abcd ") = "abcd"
说明,如果返回是字符型,则函数后有,$” 字符。
字符串函数
Left$(,World”,2) 结果,
Right$(,World”,2) 结果,
Mid$(“World”,2,3) 结果,
函数 含义
Left $(C.N) 从 C中左边起取 N个字符
Right$(C,N) 从 C中右边起取 N个字符
Mid$(C,N1,N2) 从 C中第 N1位取 N2个字符
Wo
ld
,”
,”
orl,,
字符串函数函数 含义
Len(C) 返回 C的长度
Len(,name” ) 结果,4
函数 含义
String$(n,Str) 返回 由 Str第一个字符重复 n次所组成的字符串
Space$(n) 返回包含 n个空格的字符串String(3,"s")的结果为,"sss"
String(3,"sab")的结果同样为 "sss"
Space(6)的结果为," "
字符串函数
Instr( 4,” xxpxxpXp”,” p”)
函数 含义
Instr([N1,]C1,C2[,M]) 返回 C2在 C1中首次出现的位置 (从 N1开始 )
函数 含义
Lcase(c) 将 C中大写字母变为小写字母
Ucase(c) 将 C中小写字母改为大写字母
UCase("How Are You") = "HOW ARE YOU"
LCase("How Are You") = " how are you "
从第 4位开始 第 6位 结果为 6
练习
s1 = "ABCDEFGH"
s2 = Left(s1,2)
s3 = Right(s1,3)
s4 = Mid(s1,3,2)
Print s2,s3,s4
s1 = "Visual Basic"
i = Len(s1)
Print InStr("ABCDEF","BC")
Print InStr(2,"ABCDEF","BC")
Print InStr(4,"ABCDEF","BC")
Str1 = "Hello"
s1 = UCase(Str1)
s2 = LCase(Str1)
Str1 = Space(2)
Print s1,s2,Str1,10
想一想练 习
100 mod 3
100\3+20
“ABC”>”abc”
Date
Int(-45.235)
Fix(45.235)
Len(“how are you!”)
Left(“visual basic”,6)
1
53
False
当前系统日期
-46
45
12
visual
转换函数-- ASCII码转换函数
Asc(,China” ) 结果,67(大写字母 C的 ASCΠ 码值为 67)
Chr(100) 结果:,d,( 小写字母 d的 ASCΠ 码值为 100)
函数名 一般格式 功能字符转换为 ASCΠ 码值 Asc(Str) 返回字符串 Str中首字符的
ASCΠ 码
ASCΠ 码转换为字符 Chr(n) 返回 ASCΠ 码为整数 n的字符转换函数-- 直接转换函数
Str(323.1) 结果:,└┘ 323.1” 正数无符号,转换成空格
Str(-323.1) 结果:,-323.1” 负数的符号直接转换,无空格
N1= Val(“1.234”) N1 的值是 1.234数值转换
N2= Val(“1.34ASD45”) N2 的值是 1.34字母后忽略
N3= Val("-12ASD") N3的值是 -12字母后忽略
N4= Val(“ASD123”) N4 的值是 0字母开头为 0
N5= Val(“&HFFFF” ) N4的值是 -1可以识别八、十六进制
N6= Val(“1.2e2”) N6 的值为 120单精度型数据函数名 一般格式 功能数值转换为字符串 Str(n) 返回由数值 n组成的字符串字符串转换为数值 Val(Str) 返回包含于字符串 Str内的数字日期和时间函数函数 一般格式 说明
Now Now 返回当前系统日期和时间
Date Date 返回当前系统日期
Time Time 返回当前系统时间
Year Year(T) 返回表达式 T的年份( yyyy)
Month Month(T) 返回表达式 T的月份( 1-12)
Day Day(T) 返回表达式 T的日期( 1-31)
WeekDay WeekDa(T) 返回表达式 T的星期( 1-7)
Hour Hour(T) 返回表达式 T的小时( 0-23)
Minute Minute(T) 返回表达式 T的分钟( 0-59)
Second Second(T) 返回表达式 T的秒( 0-59)
Timer Timer 返回系统当前时间从午夜算起经过的秒数说明:
( 1)日期和时间函数使用相对简单,若无参数,则返回系统的时间或日期,若有参数,确定其参数均为日期型的数据,即可操作。
( 2)函数的参数可为任何日期型数据,包括函数的结果。
例如:
Year(Now) 返回当前日期的年份。
Day(#7/25/2006#) 结果为 25。
( 3) WeekDay函数的结果是将周日认为是一个星期的开始,
即,周日对应的返回值为 1,依次类推。
日期和时间函数
Private Sub Form_Click()
x = #1/1/2008#
a = x - Date
b = Weekday(x)
c = Year(Date)
d = Month(Date)
e = Hour(Time)
f = Minute(Time)
Print "现在距离 2008年元旦还有,"; a; "天 "
Print,2008 年元旦是:该星期的第 "; ; "天 "
Print "本月份是,"; c; "年 "; d; "月 "
Print "现在是,"; e; "时 "; f; "分 "
End Sub
该星期的第 3天日期 /时间函数 示例格式输出函数函数 一般格式 说明
Format Format(expression[,format[,firstdayofweek[,firstweekofyear]]])
将数据转换为指定格式字符串说明:
( 1) expression为有效表达式,即要转换的数据,format参数一般不省略,当省略时,可以简单认为此时 Format函数的作用和 CStr函数一致。
例如,Format(-455)的结果为 "-455"。
( 2)格式化数据时,format参数中可以出现,#”,,0” 等字符串来表示某种指定格式,每一个字符都可以代表转换后的一位字符,当数据超过指定位数,0表示用 0补齐,而 #
表示不进行其他操作,两种都进行四舍五入。
例如:
Format(12222.34455,"##.###")的结果为 "12222.345"。
Format(12222.34455,"00.000")的结果为 "12222.345"。
Format(2.3,"##.###")的结果为 "2.3"。
Format(2.3,"00.000")的结果为 "02.300"。
所以一般情况下,整数部分用 #表示,小数的位数可以用 0表示,即规定某个数据保留的位数。
如,Format(2.3,"##.000")的结果为 "2.300"
格式输出函数在 Format参数中,还可以出现其他的符号,如:
“,”,,:” 或其他数据等,这些符号原样输出,在处理时,数据从右向左匹配。
例如:
Format(254485,"##:1:##")的结果为 "2544:1:85“
当参数以 %结尾时,表示以百分制显示。
例如:
Format(2544.85,“00.0%”) 的结果为,254485.0%”
格式输出函数
( 3)格式化字符串时,format参数中可以出现,@”,
,>”,,<” 等字符,这些字符可以用来指定某种格式,
@用来表示字符串的长度,不足的在字符串前补空格,若在 @前加,!”,则表示在字符串后补空格。,>”,,<”
表示转换为大写或者小写字母。
例如:
Format("ABcd","@@@@@@@@")的结果为,ABcd"
Format("ABcd","!@@@@@@@@")的结果为 "ABcd "
Format("Hello kid","<")的结果为 "hello kid"
Format("Hello kid",">")的结果为 "HELLO KID"
也可以同时使用多个符号表示:
Format("Hello",">@@@@@@@@")的结果,HELLO"
格式输出函数
( 4)格式化日期是 Format函数经常使用的功能。例如:
若 MyTime = #17:04:23#,则以下 Format函数的结果为:
MyDate = #January 27,1993#
MyStr = Format(Time,"Long Time")表示以系统设置的长时间格式返回当前系统时间。
MyStr = Format(Date,"Long Date")表示以系统设置的长日期格式返回当前系统日期。
MyStr = Format(MyTime,"h:m:s")表示返回 "17:4:23"。
MyStr = Format(MyTime,"hh:mm:ss AMPM")表示返回
"05:04:23 PM"。
MyStr = Format(MyDate,"dddd,mmm d yyyy")表示返回
"Wednesday,Jan 27 1993"。
格式输出函数