之间的区别函数和子函数在Excel中VBA是一个函数可以返回一个值,而子函数不能。随着程序大小的增加,函数和子函数功能变得非常有用。
函数
如果希望Excel VBA执行返回结果的任务,则可以使用一个函数。将函数放入模块中(在Visual Basic编辑器中,单击“插入”,“模块”)。例如,名称为Area的函数。
函数区域(x 作为 Double,y 作为 Double)作为 Double
Area = x * y
结束 函数
Area = x * y
结束 函数
说明:该函数有两个参数(Double类型)和一个返回类型(As之后的部分也是Double类型)。您可以在代码中使用函数名称(区域)来指示要返回的结果(此处为x * y)。
现在,您可以在代码中的其他地方通过简单地使用函数名称并为每个参数指定一个值来引用该函数(换句话说,称为函数)。
在您的工作表上放置一个命令按钮,并添加以下代码行:
Dim z 作为 Double
z =区域(3,5)+ 2
MsgBox z
z =区域(3,5)+ 2
MsgBox z
说明:该函数返回一个值,因此您必须在代码中“捕获”该值。您可以为此使用另一个变量(z)。接下来,您可以向该变量添加另一个值(如果需要)。最后,使用MsgBox显示值。
单击工作表上的命令按钮时的结果:
子函数
如果希望Excel VBA执行某些操作,则可以使用一个子项。将子项放入模块中(在Visual Basic编辑器中,单击“插入”,“模块”)。例如,名称为Area的子函数。
子区域(x 为 Double,y 为 Double)
MsgBox x * y
End Sub
MsgBox x * y
End Sub
说明:该子项有两个参数(Double类型)。它没有返回类型!您可以在代码中的其他位置引用该子项(称为子项),只需使用子项的名称并为每个参数指定一个值即可。
在您的工作表上放置一个命令按钮,并添加以下代码行:
3区,5区
单击工作表上的命令按钮时的结果:
您能看到函数和子函数之间的区别吗?该函数返回值15。我们在结果中添加了值2,并显示了最终结果。当我们调用子函数时,我们再也无法控制结果(15),因为子函数不能返回值!