1.VBA的基本语句结构
If…Then 语句
If A then B ‘如果A,那么B
If A then B Else C ‘如果A,那么B,否则C
ElseIf If Time <0.5 Then MsgBox "早上好!"
ElseIf Time>0.75 Then MsgBox "晚上好!"
Else MsgBox "下午好!"
End If
Select Case 语句
Select Case Time 'Select Case 后面跟的是测试表达式,可以是数值表达式,也可 以是字符串表达式,它是程序要进行判断和比较的值。
Case Is<0.5 MsgBox "早上好!" 'Case 后面跟的是表达式列表,是用来和测试 表达式进行比较的值。可以是To或Is的关键 字,也可以是用英文逗号隔开的表达式列表。 如果测试表达式是整数,Case 1 to 3 和 Case 1, 2, 3 是等效的。
Case Is>0.75 MsgBox "晚上好!"
Case Else MsgBox "下午好!"
End Select
For…Next 语句
For <循环变量> = <初值> To <终值> [Step 步长值] '<>内的参数为必选部分。[]内的参 数是可选的,如果省略,默认步长为1。
<循环体>
[Exit For] '可以在循环体任意处加入一句或多句Exit For,当遇到这个语句,退出For循 环,执行Next后的语句。
[循环体]
Next [循环变量]
Do While 语句
Do [While 逻辑表达式] '循环条件:当逻辑表达式的值为True时,执行循环体(Do与 Loop之间的语句),否则执行Loop后的语句,可省略,如果省 略,应在程序中使用Exit Do语句,让程序满足一定的条件后退出 循环。
<循环体>
[Exit Do] '可选语句,执行Exit Do语句后,将跳出循环,执行Loop后的语句。
[循环体]
Loop
GoTo语句,让程序转到另一条语句去执行(除非必须需要,否则应尽量避免使用)
GoTo可以理解为去到指定的地点,指定地点可以在目标代码所在行前加上一个带冒号的字符串或不带冒号的数字作为标签,然后在GoTo的后面写上标签名。
With语句,让代码更简单
如果不想多次重复录入相同的代码,可以用With语句来简化输入。
2.关于VBA过程
VBA的基本过程有Function过程和Sub过程。
声明Sub过程,规范的语句
[Private|Public] [Static] Sub 过程名([参数列表]) 'Private和Public用于声明过程的作用域名, 同时只能选用一个。如果省略,过程默认为公共过程。如果选用Static,运行程序的过程中将保存该过程里声明的本地变量。
[语句块]
[Exit Sub] '可选语句,执行它将中断执行并退出过程。
[语句块]
End Sub
过程作用域
Public 公共过程,可省略
Private 私有过程
3.自定义函数,Function过程
[Private|Public] [Static] Function 函数名([参数列表]) [As 数据类型]
[语句块]
[函数名=过程结果]
[Exit Function]
[语句块]
[函数名=过程结果] '最后必须把函数计算的结果赋给函数名。这一步必不可少。
End Function
声明Function过程的语句和声明Sub过程的语句类似。同Sub过程一样,Function函数也分公共函数和私有函数,如果想声明一个私有函数,请一定要加上Private关键字。
4.合理组织程序,让代码更优美
①缩进,让代码更有层次:一般缩进4个空格。(按Tab键,取消缩进则按Shift+Tab组合键)
②更改长行代码为短行代码:当一条语句过长时,可以在句子的后面输入一个空格和下划线(_),然后换行,把一行代码分成两行。(一般一行代码的长度超过80个字符时,才考虑分行)
③把多行合并为一行:在第一行代码后加上英文冒号,可以接着写第二行代码。通过这样的方式可以把多行短代码合并成一行代码。(不提倡)
④添加注释语句:当注释语句独成一行时,可以使用Rem代替单引号。