- VBA Tutorial
- VBA - Home
- VBA - Overview
- VBA - Excel Macros
- VBA - Excel Terms
- VBA - Macro Comments
- VBA - Message Box
- VBA - Input Box
- VBA - Variables
- VBA - Constants
- VBA - Operators
- VBA - Decisions
- VBA - Loops
- VBA - Strings
- VBA - Date and Time
- VBA - Arrays
- VBA - Functions
- VBA - Sub Procedure
- VBA - Events
- VBA - Error Handling
- VBA - Excel Objects
- VBA - Text Files
- VBA - Programming Charts
- VBA - Userforms
- VBA Useful Resources
- VBA - Quick Guide
- VBA - Useful Resources
- VBA - Discussion
VBA - 子过程
子过程与函数类似,但也有一些区别。
子过程不返回值,而函数可能返回值,也可能不返回值。
子过程可以在没有 call 关键字的情况下调用。
Sub 过程始终包含在 Sub 和 End Sub 语句内。
例子
Sub Area(x As Double, y As Double) MsgBox x * y End Sub
调用流程
要在脚本中的某个位置调用过程,您可以从函数中进行调用。我们将无法使用与函数相同的方式,因为子过程不会返回值。
Function findArea(Length As Double, Width As Variant) area Length, Width ' To Calculate Area 'area' sub proc is called End Function
现在您将只能调用该函数,而不能调用子过程,如以下屏幕截图所示。
计算面积并仅在消息框中显示。
结果单元格显示零,因为函数未返回面积值。简而言之,您不能从 Excel 工作表直接调用子过程。