/* */ /**/

VBA_ZZ

从其它过程调用一个 Sub 过程时,必须键入过程名称以及任何需要的参数值。而 Call 语句并不需要,不过若使用它,则任何参数必须以括号括起来。

可以使用 Sub 过程去组织其它的过程,因此可以较容易了解并调试它们。在下面的示例中,Sub 过程 Main 传递参数值 56 去调用 Sub 过程 MultiBeep。运行 MultiBeep 后,控件返回 Main,然后 Main 调用 Sub 过程 MessageMessage 显示一个信息框;当按“确定”键时,控件会返回 Main,接着 Main 退出执行。

Sub Main()
    MultiBeep 56
    Message
End Sub

Sub MultiBeep(numbeeps)
    For counter = 1 To numbeeps
        Beep
    Next counter
End Sub

Sub Message()
    MsgBox "Time to take a break!"
End Sub

调用具有多个参数的 Sub 过程

下面的示例展示了调用具有多个参数的 Sub 过程的两种不同方法。当第二次调用 HouseCalc 时,因为使用 Call 语句所以需要利用括号将参数括起来。

Sub Main()
    HouseCalc 99800, 43100
    Call HouseCalc(380950, 49500)
End Sub

Sub HouseCalc(price As Single, wage As Single)
    If 2.5 * wage <= 0.8 * price Then
        MsgBox "You cannot afford this house."
    Else
        MsgBox "This house is affordable."
    End If
End Sub

在调用 Function 过程时使用括号

为了使用函数的返回值,必须指定函数给变量,并且用括号将参数封闭起来;如下示例所示:

Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3")

如果不在意函数的返回值,可以用调用 Sub 过程的方式来调用函数。如下面示例所示,可以省略括号,列出参数并且不要将函数指定给变量:

MsgBox "Task Completed!", 0, "Task Box"

小心 在上述例子中若包含括号,则语句会导致一个语法错误。

传递命名参数

SubFunction 过程中的语句可以利用命名参数来传递值给被调用的过程。可以将命名参数以任何顺串行出。命名参数的组成是由参数名称紧接着冒号(:=)以及等号,然后指定一个值给参数。

下面的示例使用命名参数来调用不具返回值的 MsgBox 函数。

MsgBox Title:="Task Box", Prompt:="Task Completed!"

下面的示例使用命名参数调用 MsgBox 函数。将返回值指定给变量 answer3

answer3 = MsgBox(Title:="Question 3", _
Prompt:="Are you happy with your salary?", Buttons:=4)

发表评论

请发表您的观点
如果想使用个性头像,可以点击gravatar!