一、子程序(Sub)
Sub是一个关键字,用于定义一个子程序(也称为过程或函数),但它不像函数(Function)那样返回一个值。
'''
无参数
'''
Sub ShowMessage()
MsgBox "Hello, VBA!"
End Sub
'''
有参数、在另一个子程序中调用其它子程序
'''
Sub ShowMessage(name As String)
Msgbox "Hello" & name & "!"
End Sub
Sub Main()
ShowMessage "VBA"
End Sub
如果子过程需要输入参数,多个参数只需用逗号(,)分开即可。
Exit Sub语句,立即退出子过程。
End语句,立即结束当前运行的所有VBA子程序。
Sub子程序是VBA编程中的一个基础而强大的特性,它允许你将代码组织成可重用的块,从而提高代码的可读性和可维护性。
二、函数(Function)
Function关键字用于定义一个函数,该函数执行一系列操作并返回一个值。与Sub子程序不同,Function必须有一个返回值,这个返回值通过函数名返回给调用它的代码。
Function AddNumbers(num1 As Integer, num2 As Integer) As Integer
AddNumbers = num1 + num2
End Function
调用Function函数,你可以在其他Sub子程序、Function函数或Excel工作表中的公式中调用Function函数。
函数包含的语句中,相比子程序(Sub),可以看到多一个[函数名]=[返回值]语句,这是函数的返回值语句。函数名后指定该函数返回值的类型。
Sub TestAddNumbers()
Dim sum As Integer
sum = AddNumbers(5, 3)
MsgBox "The sum is: " & sum
End Sub
Exit Function语句,在一个函数中,当程序运行到Exit Function语句时,立即结束当前函数,提前退出。
End 语句,在一个函数,当程序运行到End语句时,立即结束当前运行的所有 VBA 过程和函数。