一:变量与常量
1:VBA允许使用未定义的变量,默认是变体变量。
2:在模块通用说明部份,加入Option Explicit 语句可以强迫用户进行变量定义。
3:变量定义语句及变量作用域
Dim 变量名 as 类型 '定义为局部变量,如 Dim ebookit as integer
Private 变量名 as 类型 '定义为私有变量,如 Private ebookit as byte
Public 变量名 as 类型 '定义为公有变量,如 Public ebookit as single
Global 变量名 as 类型 '定义为全局变量,如 Globlal ebookit as date
Static 变量名 as 类型 '定义为静态变量,如 Static ebookit as double
一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。
4:常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。如下定义:Const Pi=3.1415926 as single
二:判断语句
1:If…Then…Else语句
If condition Then [statements][Else elsestatements]
如①:If A>B And C<D Then A=B+2 Else A=C+2
如②:If x>250 Then x=x-100
或者,可以使用块形式的语法:
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements] ...
[Else
[elsestatements]]
End If
如1:
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
Digits = 2
Else
Digits = 3
End If
2:Select Case…Case…End Case语句
如1:
Select Case Pid
Case “A101”
Price=200
Case “A102”
Price=300
……
Case Else
Price=900
End Case
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:For Next语句 以指定次数来重复执行一组语句
For counter = start To end [Step step] ' step 缺省值为1
[statements]
[Exit For]
[statements]
Next [counter]
如1:
For Words = 10 To 1 Step -1 ' 建立 10 次循环
For Chars = 0 To 9 ' 建立 10 次循环
MyString = MyString & Chars ' 将数字添加到字符串中
Next Chars ' Increment counter
MyString = MyString & " " ' 添加一个空格
Next Words
2:For Each…Next语句 主要功能是对一个数组或集合对象进行,让所有元素重复执行一次语句
For Each element In group
Statements
[Exit for]
Statements
Next [element]
如1:
For Each rang2 In range1
With range2.interior
.colorindex=6
.pattern=xlSolid
End with
Next
这上面一例中用到了 With…End With 语句,目的是省去对象多次调用,加快速度;语法为:
With object
[statements]
End With
3:Do…loop语句 在条件为true时,重复执行区块命令
Do {while |until} condition ' while 为当型循环,until为直到退出循环条件
Statements
Exit do
Statements
Loop
或者使用下面语法
Do ' 先do 再判断
Statements
Exit do
Statements
Loop {while |until} condition