子程序和函数
Sub 过程 ref
- 只能定义过程是模块级别, 访问默认是Public的
- Exit Sub可以用Return语句代替来终结.
[ <attributelist> ] [ Partial ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shadows ] [ Async ]
Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslist | Handles eventlist ]
[ statements ]
[ Exit Sub ]
[ statements ]
End Sub
这也是我们在编写大多数VBA程序时用到的结构。其中:
过程名称为编程人员给过程命名的名称,其命名规则与变量名称的规则相同。在同一模块中的过程名称不能同名。 Sub和End Sub配套出现,它们之间构成一个完整的程序过程。 过程中的代码可以放置Exit Sub语句,表示提前退出过程。 通常,在VBE编辑器中,写下sub和过程名称,按下回车键后,会自动添加End Sub语句。Sub过程用来执行操作,而Function过程可以返回值,创建自定义函数。Function过程的基本语法形式为:
Function 函数语句 ref
[ <attributelist> ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shadows ] [ Async | Iterator ]
Function name [ (Of typeparamlist) ] [ (parameterlist) ] [ As returntype ] [ Implements implementslist | Handles eventlist ]
[ statements ]
[ Exit Function ]
[ name = value | Return value ]
[ statements ]
End Function
可以看出,其形式与Sub过程的基本形式相似,只是将关键词Sub换成了Function。注意:
在Function过程的代码语句中,应至少有一次把某个确定的值赋值给函数过程的名称。 建议避免使用Excel内置函数名称、单元格引用、单元格区域的名称作为函数过程的名称。 Function过程不能对单元格区域进行修改,不能执行与对象相关的操作。 Function过程可以应用在工作表公式中,就像Excel的内置函数一样;Function过程也可以应用在VBA代码中。 过程代码中可以放置Exit Function语句,表示提前退出过程。 按惯例,方括号表示可选。
调试
Stop语句 ref
终止执行,非发布的exe时stop不会关闭文件和清除变量.在IDE中将调用调试器.
Try Catch Finally ref
Try
[ tryStatements ]
[ Exit Try ]
[ Catch [ exception [ As type ] ] [ When expression ]
[ catchStatements ]
[ Exit Try ] ]
[ Catch ... ]
[ Finally
[ finallyStatements ] ]
End Try
Throw ref
Throw [ expression ]