文档介绍:该【VBA语言速查手册 】是由【飞行的大米】上传分享,文档一共【7】页,该文档可以免费在线阅读,需要了解更多关于【VBA语言速查手册 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。VBA语言基础简介
(VisualBasicApplication)
这里只做一些vba最基本的介绍,好多函数,过程的详细使用不行能一一说明,同学们参照
vba函数速查手册
第一节表记符
表记符是一种表记变量、常量、过程、函数、类等语言构成单位的符号,利用它能够达成
对变量、常量、过程、函数、类等的引用。
1)字母打头,由字母、数字和下划线构成,如
A987b_23Abc
2)字符长度小于40
3)不可以与VB保存字重名,如
public,private,dim,goto,next,with,integer,single
等
第二节运算符
定义:运算符是代表VB某种运算功能的符号。
1)赋值运算符=
2)数学运算符&、+(字符连结符)、+(加)、-(减)、Mod(取余)、(整除)、*(乘)、/(除)、
-(负号)、^(指数)
3)逻辑运算符
4)关系运算符
Not(非)、And(与)、Or(或)、Xor(异或)、
=(同样)、<>(不等)、>(大于)、<(小于)、
Eqv(相等)、Imp(隐含)
>=(不小于)、<=(不大于)、
Like、Is
5)位运算符(临时可不看位运算)
Not(逻辑非)、
And(逻辑与)、
Or(逻辑或)、
Xor(逻辑
异或)、
Eqv(逻辑等)、
Imp(隐含)
第三节数据种类
VBA共有12种数据种类,详细见下表,其余用户还能够依据以下种类用Type自定义数据
种类。
数据种类
种类表记符
字节
字符串型String
$
字符长度(0-65400)
字节型Byte
无
1
布尔型Boolean
无
2
整数型Integer
%
2
长整数型Long
&
4
单精度型Single
!
4
双精度型Double
#
8
日期型Date
无
8
公元100/1/1-9999/12/31
钱币型Currency
@
8
小数点型Decimal
无
14
变体型Variant
无
以上随意种类,可变
对象型Object
无
4
第四节变量与常量
1)VBA同意使用不决义的变量,默认是变体变量。
2)在模块通用说明部份,加入OptionExplicit
语句能够逼迫用户进行变量定义。
3)变量定义语句及变量作用域
Dim
变量as种类
'定义为局部变量,如
Dim
xyzasinteger
Private
变量as种类
'定义为私有变量,如
Private
xyzasbyte
Public
变量as种类
'定义为公有变量,如
Public
xyzassingle
Global
变量as种类
'定义为全局变量,如
Globlal
xyzasdate
Static
变量as种类
'定义为静态变量,如
Static
xyzasdouble
一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。
4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不可以改变值,作用域也好像
变量作用域。以下定义:ConstPi=assingle
第五节数组
数组是包括同样数据种类的一组变量的会合,对数组中的单个变量引用经过数组索引下标
进行。在内存中表现为一个连续的内存块,一定用Global或Dim语句来定义。定义规则以下:
Dim数组名([lowerto]upper[,[lowerto]upper,.])astype;Lower缺省值为0。二维数组是按队列摆列,
如DimX(9)asString声了然一个10个元素的数组,X(0)~X(9),假如没有指定lower,则默认
lower=0。
再比如DimMyArray(10,10)AsInteger,是个11*11整数数组
除了以上固定数组外,VBA还有一种功能强盛的动向数组,定义时无大小维数申明;在程
序中再利用Redim语句来从头改变数组大小,本来数组内容能够经过加preserve重点字来保存。
以下例:
Dimarray1( )asdouble:Redimarray1(5):array1(3)=250:Redimpreservearray1(5,10)
第六节说明和赋值语句
1)说明语句是用来说明程序中某些语句的功能和作用,说明语句不会被履行;VBA中有两种方
法表记为说明语句。
单引号’;如:’定义全局变量;能够位于其余语句之尾,也可单唯一行
Rem;如:Rem定义全局变量;只好单唯一行
2)赋值语句是进行对变量或对象属性赋值的语句,采纳赋值号=,如X=123:=”我的窗口”
对对象的赋值采纳:setmyobject=object或myobject:=object
第七节书写规范
1)VBA不划分表记符的字母大小写,一律以为是小写字母;
2)最好以行只写一条语句。一行能够书写多条语句,各语句之间以冒号:分开;
3)一条语句能够多行书写,以空格加下划线_来表记下行为续行;
4)表记符最好能简短了然,不造成歧义。
第八节判断语句
1)IfThenElse语句
IfconditionThen[statements][Elseelsestatements]
condition是个判断条件,当condition为真True,就履行Then后边的statements那些语句,假如为假False,履行elsestatements语句
如1:IfA>BAndC<DThenA=B+2ElseA=C+2
如2:Ifx>250Thenx=x-100
或许,能够使用块形式的语法,即IfThenElse语句能够嵌套:
IfconditionThen
[statements]
[ElseIfcondition-nThen
[elseifstatements]...
[Else
[elsestatements]]
EndIf
如1:
IfNumber<10Then
Digits=1
ElseIfNumber<100Then
Digits=2
Else
Digits=3
EndIf
2)SelectCaseCaseEndCase语句
如1:Pid的取值来决定履行不一样的语句
SelectCasePid
Case“A101”
Price=200‘当Pid的实质值是“A101”,就履行Price=
Case“A102”
Price=300
CaseElse
Price=900
EndCase
第九节循环语句
1)ForNext语句以指定次数来重复履行一组语句
Forcounter=startToend[Stepstep]
'step
缺省值为1
[statements]
[ExitFor]
[statements]
Next[counter]
如1:for语句也能够嵌套,以下,双重
for循环
ForWords=10To1Step-1
'成立
10
次循环
ForChars=0To9
'成立
10
次循环
MyString=MyString&Chars
'将数字增添到字符串中
NextChars
'Incrementcounter
MyString=MyString&""'增添一个空格
NextWords
2)ForEachNext语句主要功能是对一个数组或会合对象进行,让全部元素重复履行一次语
句
其作用就是遍历一遍数组或会合对象中的全部元素
ForEachelementIngroup‘group必需参数。对象会合或数组的名称(用户定义种类的数组除外)。
Statements
[Exitfor]
Statements
Next[element]
如1:
ForEachrang2Inrange1
With
.colorindex=6
.pattern=xlSolid
Endwith
Next
这上边一例顶用到了WithEndWith语句,目的是省去对象多次调用,加迅速度;语法为:
Withobject
[statements]
EndWith
3)Doloop语句在条件为trueDo{while|until}condition
多说啦
Statements
Exitdo
Statements
Loop
或许使用下边语法
Do
Statements
Exitdo
Statements
Loop{while|until}condition
4)whilewend语句,只需条件为
whilecondition
[statements]
wend
时,重复履行区块命令
'while为当型循环,until为直到型循环,顾名思义,不
先do再判断,即无论怎样先干一次再说
TRUE,循环就履行以下例:
‘whileI<50
‘I=I+1
第十节其余类语句和错误语句办理
这节能够省略,感兴趣的话能够看看
构造化程序使用以上判断和循环语句已经足够,建议不要轻易使用下边的语句,固然
VBA还支
持。
1)
Gotoline该语句为跳转到line语句行
2)
Onexpressiongosubdestinatioinlist或许onexpressiongotodestinationlist
语句为依据
exprssion表达式值来跳转到所要的行号或行标志
3)
GosublinelineReturn语句,Return返回到Gosubline行,以下例:
Subgosubtry( )
Dimnum
Num=inputbox(“输入一个数字,此值将会被判断循环”)
Ifnum>0thenGosubRoutine1:num:Exitsub
Routine1:
Num=num/5
Return
Endsub
‘Wend
履行阶段有时会有错误的状况发生,利用
OnError语句来办理错误,启动一个错误的办理程序。
语法以下:
OnErrorGotoLine
‘当错误发生时,会马上转移到line行去
OnErrorResumeNext
‘当错误发生时,会马上转移到发生错误的下一
行去
OnErroGoto0
‘当错误发生时,会马上停止过程中任何错误办理过
程
第十一节过程和函数
过程是构成程序的一个模块,常常用来达成一个相对独立的功能。过程能够使程序更清楚、
更具构造性。VBA拥有四种过程:Sub过程、Function函数、Property属性过程和Event事件过程。
Sub过程的参数有两种传达方式:按值传达(ByVal)和按地点传达
Subpassword(ByValxasinteger,ByRefyasinteger)
Ify=100theny=x+yelsey=x-y
x=x+100
Endsub
Subcall_password( )
Dimx1asinteger
Dimy1asinteger
x1=12
y1=100
Callpassword(x1,y1)‘调用过程方式:(参数
(ByRef)。以下例:
1,参数2);
数1,
参数
2
x1,y1
Endsub
‘结果是
12、112,y1按地点传达改变了值,而
x1按值传达,未改变原值
函数实质是实现一种映照,它经过必定的映照规则,达成运算并返回结果。参数传达也两种:按值传达(ByVal)和按地点传达(ByRef)。以下例:
Functionpassword(ByValxasinteger,byrefyasinteger)asbooleanIfy=100theny=x+yelsey=x-y
x=x+100
ify=150thenpassword=trueelsepassword=false
EndFunction
Subcall_password( )
Dimx1asintegerDimy1asinteger
x1=12
y1=100
ifpasswordthen
‘调用函数:
=右端;
x1
endif
Endsub
Event事件过程
这是VB在对象功能上增添的两个过程,与对象特点亲密有关,也是
VBA比较重要构成,
技术比较复杂,能够参照有关书本。我们的试验不波及这两部分
第十二节内部函数
在VBA程序语言中有很多内置函数,能够帮助程序代码设计和减少代码的编写工作。这部分重假如供我们查阅,直接使用的。一般要注意某个函数的需要输入的参数是什么类
型的,函数的返回值又是什么种类的
IsNumeric(x)
IsDate(x)
IsEmpty(x)
IsArray(x)
IsError(expression)
IsNull(expression)
IsObject(identifier)
‘能否为数字,返回Boolean结果,TrueorFalse
‘是不是日期,返回Boolean结果,TrueorFalse
‘能否为Empty,返回Boolean结果,TrueorFalse
‘指出变量能否为一个数组。
‘指出表达式能否为一个错误值
‘指出表达式能否不包括任何有效数据(Null)。
‘指出表记符能否表示对象变量
Sin(X)、Cos(X)、Tan(X)
、Atan(x)
三角函数,单位为弧度
Log(x)
返回
x的自然对数
Exp(x)返回
ex
Abs(x)
返谢绝对值
Int(number)、Fix(number)都返回参数的整数部分,差别:Int将变换成-9,而Fix将变换
成
-8
Sgn(number)返回一个Variant(Integer),指出参数的正负号
Sqr(number)返回一个Double,指定参数的平方根
VarType(varname)返回一个Integer,指出变量的子种类
Rnd(x)返回0-1之间的单精度数据,x为随机种子
Trim(string)
去掉
string
左右两头空白
Ltrim(string)
Rtrim(string)
去掉
去掉
stringstring
左端空白
右端空白
Len(string)
计算
string
长度
Left(string,x)
Right(string,x)
取
string左段
取string
x个字符构成的字符串
右段x个字符构成的字符串
Mid(string,start,x)
取
string
从start位开始的
x个字符构成的字符串
Ucase(string)
变换为大写
Lcase(string)
Space(x)
返回
变换为小写
x个空白的字符串
Asc(string)
Chr(charcode)
返回一个integer,代表字符串中首字母的字符代码
返回string,此中包括有与指定的字符代码有关的字符
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression)
CVar(expression)
Val(string)
Str(number)
变换为Boolean型
变换为Byte型
变换为Currency型
变换为Date型
变换为Double型
变换为Decemal型
变换为Integer型
变换为Long型
变换为Single型
变换为String型
变换为Variant型
变换为数据型
变换为String
Now
返回一个
Variant(Date),依据计算机系统设置的日期和时间来指定日期和时间。
Date
返回包括系统日期的Variant(Date)。
Time返回一个指明目前系统时间的
Variant(Date)。
Timer
返回一个
Single,代表从子夜开始到此刻经过的秒数。
TimeSerial(hour,minute,second)
返回一个
Variant(Date),包括拥有详细时、分、秒的时间。
DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])
返回Variant(Long)的值,表示
两个指定日时期的时间间隔数量
Second(time)
返回一个
Variant(Integer),其值为0
到59
之间的整数,表示一分钟之中的某个
秒
Minute(time)
返回一个
Variant(Integer),其值为
0
到59
之间的整数,表示一小时中的某分钟
Hour(time)
返回一个
Variant(Integer)
,其值为
0
到23
之间的整数,表示一天之中的某一
钟点
Day(date)
返回一个
Variant(Integer)
,其值为
1
到31
之间的整数,表示一个月中的某一
日
Month(date)
返回一个
Variant(Integer)
,其值为
1
到12
之间的整数,表示一年中的某月
Year(date)
返回Variant(Integer),包括表示年份的整数。
Weekday(date,[firstdayofweek])
返回一个
Variant(Integer),包括一个整数,代表某个日期是礼拜
几