Excel VBA 快速上手之宝典.docx

上传人:b****2 文档编号:2265397 上传时间:2022-10-28 格式:DOCX 页数:22 大小:30.68KB
下载 相关 举报
Excel VBA 快速上手之宝典.docx_第1页
第1页 / 共22页
Excel VBA 快速上手之宝典.docx_第2页
第2页 / 共22页
Excel VBA 快速上手之宝典.docx_第3页
第3页 / 共22页
Excel VBA 快速上手之宝典.docx_第4页
第4页 / 共22页
Excel VBA 快速上手之宝典.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

Excel VBA 快速上手之宝典.docx

《Excel VBA 快速上手之宝典.docx》由会员分享,可在线阅读,更多相关《Excel VBA 快速上手之宝典.docx(22页珍藏版)》请在冰豆网上搜索。

Excel VBA 快速上手之宝典.docx

ExcelVBA快速上手之宝典

第一节    标识符

一.定义

标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。

二.命名规则

1) 字母打头,由字母、数字和下划线组成,如A987b_23Abc

2) 字符长度小于40,(Excel2002以上中文版等,可以用汉字且长度可达254个字符)

3) 不能与VB保留关键字重名,如public,private,dim,goto,next,with,integer,single等

第二节运算符

定义:

运算符是代表VB某种运算功能的符号。

1)赋值运算符=

2)数学运算符&、+(字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)

3)逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)

4)关系运算符=(相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、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   类型'定义为局部变量,如Dimxyzasinteger

Private变量   as   类型'定义为私有变量,如Privatexyzasbyte

Public变量   as   类型'定义为公有变量,如Publicxyzassingle

Global 变量   as   类型'定义为全局变量,如Globlalxyzasdate

Static变量   as   类型'定义为静态变量,如Staticxyzasdouble

一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。

4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。

   如下定义:

ConstPi=3.1415926assingle

第五节数组

数组是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。

在内存中表现为一个连续的内存块,必须用Global或Dim语句来定义。

定义规则如下:

Dim数组名([lowerto]upper[,[lowerto]upper,….])astype;Lower缺省值为0。

二维数组是按行列排列,如XYZ(行,列)。

除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。

如下例:

Dimarray1()asdouble:

Redimarray1(5):

array1(3)=250:

Redimpreservearray1(5,10)

第六节

    注释和赋值语句

1)注释语句是用来说明程序中某些语句的功能和作用;VBA中有两种方法标识为注释语句。

    '单引号如:

’定义全局变量;可以位于别的语句之尾,也可单独一行

    Rem    如:

Rem定义全局变量;只能单独一行

2)赋值语句是进行对变量或对象属性赋值的语句,采用赋值号 =,如X=123:

Form1.caption=”我的窗口”

  对象变量的赋值采用:

setmyobject=object或myobject:

=object

第七节书写规范

1)VBA不区分标识符的字母大小写,一律认为是小写字母;

2)一行可以书写多条语句,各语句之间以冒号:

分开;

3)一条语句可以多行书写,以空格加下划线_来标识下行为续行;

4)标识符最好能简洁明了,不造成歧义。

第八节条件语句

1)If…Then…Else语句

IfconditionThen[statements][Elseelsestatements]

如1:

IfA>BAndC

如2:

Ifx>250Thenx=x-100

或者,可以使用块形式的语法:

IfconditionThen

[statements]

[ElseIfcondition-nThen

[elseifstatements]...

[Else

[elsestatements]]

EndIf

如1:

IfNumber<10Then

Digits=1

ElseIfNumber<100Then

Digits=2

Else

Digits=3

EndIf

2)SelectCase…Case…EndCase语句

如1:

SelectCasePid

Case“A101”

Price=200

Case“A102”

Price=300

……

CaseElse

Price=900

EndCase

3)Choose函数

choose(index,choce-1,choice-2,…,choice-n),可以用来选择自变量串列中的一个值,并将其返回,index必要参数,数值表达式或字段,它的运算结果是一个数值,且界于1和可选择的项目数之间。

choice必要参数,Variant表达式,包含可选择项目的其中之一。

如:

GetChoice=Choose(Ind,"Speedy","United","Federal")

4)Switch函数

Switch(expr-1,value-1[,expr-2,value-2_[,expr-n,value-n]])

switch函数和Choose函数类似,但它是以两个一组的方式返回所要的值,在串列中,最先为TRUE的值会被返回。

expr必要参数,要加以计算的Variant表达式。

value必要参数。

如果相关的表达式为True,则返回此部分的数值或表达式,没有一个表达式为True,Switch会返回一个Null值。

第九节循环语句

1)ForNext语句以指定次数来重复执行一组语句

Forcounter=startToend[Stepstep]'step缺省值为1

[statements]

[ExitFor]

[statements]

Next[counter]

如1:

ForWords=10To1Step-1'建立10次循环

ForChars=0To9'建立10次循环

MyString=MyString&Chars'将数字添加到字符串中

NextChars'Incrementcounter

MyString=MyString&""'添加一个空格

NextWords

 

2)ForEach…Next语句主要功能是对一个数组或集合对象进行,让所有元素重复执行一次语句

ForEachelementIngroup

Statements

[Exitfor]

Statements

Next[element]

如1:

ForEachrang2Inrange1

Withrange2.interior

.colorindex=6

.pattern=xlSolid

Endwith

Next

这上面一例中用到了With…EndWith语句,目的是省去对象多次调用,加快速度;语法为:

Withobject

[statements]

EndWith

3)Do…loop语句在条件为true时,重复执行区块命令

Do{while|until}condition'while为当型循环,until为直到型循环,顾名思义,不多说啦

Statements

Exitdo

Statements

Loop

或者使用下面语法

Do'先do再判断,即不论如何先干一次再说

Statements

Exitdo

Statements

Loop{while|until}condition

第十节其他类语句和错误语句处理

一.其他循环语句

结构化程序使用以上判断和循环语句已经足够,建议不要轻易使用下面的语句,虽然VBA还支持。

1)     Gotoline该语句为跳转到line语句行

2)     Onexpressiongosubdestinatioinlist或者onexpressiongotodestinationlist语句为根据exprssion表达式值来跳转到所要的行号或行标记

3)     Gosubline…line…Return语句,Return返回到Gosubline行,如下例:

Subgosubtry()

Dimnum

Num=inputbox(“输入一个数字,此值将会被判断循环”)

Ifnum>0thenGosubRoutine1:

Debug.printnum:

Exitsub

Routine1:

Num=num/5

Return

Endsub

4)     while…wend语句,只要条件为TRUE,循环就执行,这是以前VB老语法保留下来的,如下例:

whilecondition‘whileI<50

[statements]‘I=I+1

wend‘Wend

 

二.错误语句处理

执行阶段有时会有错误的情况发生,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1