VBA - 子程序



子程序与函数类似,但它们之间有一些差异。

  • 子程序返回任何值,而函数可以返回或不返回一个值。

  • 子程序可以不带调用关键字被调用。

  • 子程序始终被包含在 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

现在你只能调用函数,但不能调用子程序,如下面的屏幕截图所示。

Sub Procedure in VBA

该区域已计算并仅在消息框中显示。

Calculate Area Sub 2 in VBA

结果单元格显示零,因为没有从函数中返回区域值。简而言之,你不能直接从 Excel 工作表调用子过程。

Calculate Area Sub 3 in VBA
广告