1.使用 Option Explicit 关键字
变量必须先声明(定义)再使用,解决后期调试代码的烦恼。
自动加上 Option Explicit 关键字的方法:
VBA->工具->选项
或者:
2.变量、常量、子过程的名称
简单的规范,只要自己或其他人能看明白就可以。
比如: ✔ 用中文定义变量:
Dim 查询语句 As String
✔ 用英文单词定义变量,第二个以后的单词首字母大写:
Dim strSQL As String
同上,变量名加上变量类型前缀:
一个前缀字母的方案:
i(Integer)、l(Long)、s(String)、d(Double)、c(Currency)、b(Boolean)、d(Date)、v(Variant)、o(Object)、y(Byte)、t(Type) Dim oTargetRange As Excel.Range
三个前缀字母的方案:
int(Integer)、lng(Long)、str(String)、dbl(Double)、cur(Currency)、bln(Boolean)、dat(Date)、var(Variant)、obj(Object)、byt(Byte)、typ(Type)
Dim strWhere As String
✔ 用中文定义子过程:
Sub 查询库存量()
……
End Sub
✔ 用英文单词定义子过程,每个单词首个字母大写:
Sub QueryCurrentStock()
……
End Sub
3.代码注释
子过程头、逻辑步骤、关键算法可加上注释
'通过子过程来自动计算订单总金额
Sub 计算订单金额()
Dim rst As Object
Dim curSum As Currency
If Me.Dirty Then Me.Dirty = False '如果当前处理未保存状态,先进行保存
Set rst = Me.RecordsetClone '打开订单明细窗体的记录集副本,这样不对当前记录的显示等造成影响
If rst.RecordCount <> 0 Then rst.movefirst '如果订单明细记录不为空,先移到第一条记录
Do Until rst.EOF '循环所有记录至到最后一行记录
curSum = curSum + rst!售价 * rst!销售数量 '对每一行记录中的金额(售价x销售数量)进行累加
rst.MoveNext
Loop
Me.Parent!订单金额 = curSum '将父窗体(即订单窗体)中的“订单金额”的值设为最后累加的值
Set rst = Nothing
End Sub
4.代码缩进
缩进方式,按键盘的 Tab 键:
Sub Test()
If 逻辑满足 then
For i=0 to 100
‘….
Next i
End If
End Sub
Tab缩进大小设置,默认4个空格: