VBA - Sub 子程序

Sub 子过程与函数类似,但存在一些差异。

  • Sub 子过程不返回值,而函数可能返回值,也可能不返回值。

  • Sub 子过程可以在没有 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 中计算面积的子过程2

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

在 VBA 中计算面积子过程3