Excel VBA 子程序:如何在 VBA 中调用 Sub(附示例)

VBA 中的子程序是什么?

A VBA 中的子程序 是一段执行代码中描述的特定任务但不返回结果或值的代码。子程序用于将大段代码分解为可管理的小部分。子程序可以从程序中的任何位置多次调用。

假设您创建了一个带有文本框的用户界面,用于接受用户输入数据。您可以创建一个子程序来清除文本框的内容。在这种情况下,VBA 调用子程序是合适的,因为您不想返回任何结果。

为什么要使用子程序

  • 将代码分解为易于管理的小代码:普通计算机程序有成千上万行源代码。这增加了复杂性。子程序通过将程序分解为可管理的小代码块来帮助解决此问题。
  • 代码可重用性。假设您有一个需要访问数据库的程序,那么程序中的几乎所有窗口都需要与数据库交互。您可以创建一个处理所有数据库交互的函数,而不必为这些窗口编写单独的代码。然后您可以从任何您想要的窗口调用它。
  • 子程序和函数是自文档的。假设您有一个函数 calculateLoanInterest 和另一个函数 connectToDatabase。只需查看子例程/函数的名称,程序员就能知道该程序的作用。

子程序和函数的命名规则

要使用子程序和函数,必须遵循一系列规则。

  • 子程序或 VBA 调用函数名称不能包含空格
  • Excel VBA 调用子程序或函数名称应以字母或下划线开头。不能以数字或特殊字符开头
  • 子程序或函数名不能是关键字。关键字是在 VBA. Private、Sub、Function、End 等词都是关键字的例子。编译器使用它们来完成特定任务。

VBA 子程序语法

您需要在 Excel 中启用“开发人员”选项卡才能继续执行此示例。如果您不知道如何启用“开发人员”选项卡,请阅读 VBA Opera职权范围

语法中,

Private Sub mySubRoutine(ByVal arg1 As String, ByVal arg2 As String)
    'do something
End Sub

语法解释

代码 操作
  • “私人子程序 mySubRoutine(…)”
  • 这里使用关键字“Sub”声明一个名为“mySubRoutine”的子程序,并启动子程序的主体。
  • 关键字 Private 用于指定子程序的范围
  • “ByVal arg1 作为字符串,ByVal arg2 作为字符串”:
  • 它声明了两个字符串数据类型名称为 arg1 和 arg2 的参数
  • “结束”
  • “End Sub”用于结束子程序主体

以下子例程接受名字和姓氏并将它们显示在消息框中。

现在我们要编写并执行这个 Sub 过程。让我们看看这个。

如何在 VBA 中调用 Sub

下面是在 VBA 中如何调用 Sub 的逐步过程:

  1. 设计用户界面并设置用户控件的属性。
  2. 添加子程序
  3. 编写调用子程序的命令按钮的单击事件代码
  4. 测试应用程序

步骤1) 用户界面

设计用户界面,如下图所示。

如何在 VBA 中调用 Sub

设置以下属性。我们正在设置的属性:

S / N 通过积极争取让商标与其相匹配的域名优先注册来维护 特性 价值观
1 命令按钮 1 姓名 btn显示全名
2 标题 全名子程序


您的界面现在应该如下所示。

如何在 VBA 中调用 Sub

步骤2) 添加子程序

  1. 按 Alt + F11 打开代码窗口
  2. 添加以下子程序
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String)
    MsgBox firstName & " " & lastName
End Sub

在代码中,

代码 行动
  • “私人子版块 displayFullName(…)”
  • 它声明了一个接受两个字符串参数的私有子程序 displayFullName。
  • “ByVal firstName 作为字符串,ByVal lastName 作为字符串”
  • 它声明了两个参数变量 firstName 和 lastName
  • MsgBox 名字 & ” ” & 姓氏”
  • 它调用 MsgBox 内置函数显示消息框。然后它将“firstName”和“lastName”变量作为参数传递。
  • 使用与号“&”连接两个变量并在它们之间添加空格。

步骤3) 调用子程序

从命令按钮单击事件调用子例程。

  • 右键单击命令按钮,如下图所示。选择查看代码。
  • 代码编辑器将打开

如何在 VBA 中调用 Sub

在代码编辑器中为 btnDisplayFullName 命令按钮的单击事件添加以下代码。

Private Sub btnDisplayFullName_Click()
    displayFullName "John", "Doe"
End Sub

您的代码窗口现在应如下所示

如何在 VBA 中调用 Sub

保存更改并关闭代码窗口。

步骤4) 测试代码

在开发者工具栏上将设计模式设置为“关闭”。如下所示。

如何在 VBA 中调用 Sub

步骤5) 单击命令按钮‘FullName Subroutine’。

您将获得以下结果

如何在 VBA 中调用 Sub

下载上述 Excel 代码

结语

  • 子程序是执行特定任务的一段代码。子程序执行后不返回值
  • 子程序提供代码可重用性
  • 子程序有助于将大块代码分解为易于管理的小代码。