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

现在您将只能调用该函数,而不能调用子过程,如以下屏幕截图所示。

VBA 中的子过程

计算面积并仅在消息框中显示。

在 VBA 中计算面积 Sub 2

结果单元格显示零,因为函数未返回面积值。简而言之,您不能从 Excel 工作表直接调用子过程。

在 VBA 中计算面积 Sub 3