调用 Sub 和 Function 过程 (VBA)

分类: 完美365体育官方网站 时间: 2025-07-06 05:22:57 作者: admin 阅读: 2023 点赞: 682
调用 Sub 和 Function 过程 (VBA)

若要从其他过程中调用某个 Sub 过程,请键入该过程的名称并包含任何所需的参数值。 不需要使用 Call 语句,但如果使用了该语句,则必须将任何参数包含在圆括号内。

使用子过程来组织其他过程,使其更易于理解和调试。 In the following example, the Sub procedure Main calls the Sub procedure MultiBeep, passing the value 56 for its argument.

当 MultiBeep 运行后,控件返回到 Main,且 Main 调用 Sub 过程 Message。

Message 显示一个消息框,当用户单击“确定”时,控件返回到 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

注意

有兴趣开发跨多个平台扩展 Office 体验的解决方案吗? 查看新的 Office 外接程序模型。 与VSTO外接程序和解决方案相比,Office外接程序占用的空间较小,您可以使用几乎任何Web编程技术(例如HTML5,JavaScript,CSS3和XML)来构建它们。

使用多个参数调用 Sub 过程

下面的示例演示了使用多个参数调用 Sub 过程的两种方法。 第二次调用它时,需要将参数包含在圆括号内,因为使用了 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"

如果您在上述示例中包含圆括号,则该语句将导致语法错误。

传递命名参数

Sub 或 Function 过程中的语句可使用命名参数将值传递给所调用的过程。 您可以按照任何顺序列出命名参数。 命名参数包含参数的名称后跟一个冒号和一个等号 (:=) 以及分配给该参数的值。

以下示例使用命名参数调用 MsgBox 函数,而不返回任何值。

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

以下示例使用命名参数调用 MsgBox 函数。 将返回值分配给变量。

answer3 = MsgBox(Title:="Question 3", _

Prompt:="Are you happy with your salary?", Buttons:=4)

另请参阅

在代码中使用圆括号

Visual Basic 概念性主题

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。

相关推荐