VBA MID 函数

2025年3月17日 | 阅读 7 分钟

在日常的 Excel 使用中,我们经常会遇到需要提取字符串中的第一个、最后一个或中间部分的子字符串的情况。在这种情况下,我们可以依靠 TEXT 公式来满足我们的需求。虽然这些函数的工作方式与 Excel 工作表引用相同,但它们的语法也相同。其中一个函数就是 **VBA MID**。它有助于从输入字符串中提取中间的子字符串。

本教程将带您了解 VBA MID 函数的定义、语法、参数、返回类型以及解释如何使用 VBA MID 函数编写宏代码的各种示例。

MID 函数是什么?

VBA MID 函数通常用于从完整的文本字符串中提取中间的值(通常是子字符串)。它被归类为字符串类型变量。

VBA Mid 函数使用户能够从完整的文本字符串中获取字符串的中间部分。VBA 字符串函数的优点在于它们不会更改原始字符串。相反,它们会在修改输入字符串后返回一个新字符串。VBA Mid 函数返回一个由提供的文本或字符串组成的子字符串。

换句话说,VBA MID 函数只从输入字符串中提取中间部分。例如,如果您有一个字符串 "Sukla Rani Patra",在这个字符串中,中间值是 "Rani",要提取的字符的起始位置是 6,我们需要从起始位置提取 6 个字符。

此函数可以用作 VBA 函数,也可以用作 Excel 中的工作表函数。它可以作为单元格中公式的一部分使用。VBA MID 函数列在 VBA 函数的文本类别下。它的功能与 Excel 工作表中的 MID 函数完全相同。VBA MID 函数被归类为字符串类型变量。

语法

参数

  • String 或 text_string 或 string_to_search (必需): String 参数表示我们要从中提取的字符串的长度。
  • Starting point 或 start_number (必需): 此参数表示从中开始提取子字符串的字符编号。
  • Length 或 number_of_characters (可选): 此长度参数表示您想从起始位置获取多少个字符。

返回

VBA MID 函数通常用于从完整的文本字符串中提取中间的值(通常是子字符串)。

注意事项

  1. VBA MID 函数为给定的字符串返回一个基于字符串的输出。
  2. 如果指定的字符串参数为 Null,此函数将返回 Null 作为输出。
  3. 在此函数中,如果参数 start_number 大于 text_string 参数的长度,VBA MID 函数将返回一个空字符串(零长度)作为输出。

示例

# MID 函数示例 1:从字符串 "Sukla Rani Panda" 中提取中间名。

VBA MID 是许多用户用来仅获取字符串的一部分(通常是中间子字符串)或用户提供的值的内置函数之一。

以下是编写 VBA 宏以使用 VBA Left 函数从指定字符串中提取中间名称的步骤。

步骤 1:打开 VBA 开发人员选项卡。 转到 Excel 工作表,从功能区选项卡中单击开发人员窗口 -> Visual Basic 编辑器,或直接单击快捷键 Alt +F11。

步骤 2:将显示 VB 编辑器窗口。 下一步是创建一个模块。 从功能区选项卡中单击插入 -> 单击模块。

VBA MID Function

步骤 3:您会注意到,VBA 将插入一个新的模块窗口。 首先引入您的宏名称,后跟变量的声明来启动程序。

请参考以下给出的宏代码

步骤 4:接下来,我们将使用 VBA MID 函数。在参数中,我们将传递字符串、起始字符 i.e. 6,并在长度参数中传递 5,因为我们想提取中间子字符串的前 4 个字符。

将提取的值存储在我们的变量中,稍后通过 MsgBox 返回该变量。


VBA MID Function

输出

通过单击“运行”或按 F5 键运行您的宏。结果,您将注意到 VBA 将显示一个 MsgBox,其中包含中间字符串。

VBA MID Function

宏已从字符串 "Sukla Rani Panda" 中提取了中间的 4 个字符。因此,输出将显示中间名称,即 "Rani"。

# MID 示例 2:使用 VBA MID 函数从 Excel 单元格列表中提取中间名。

VBA 语言的好处在于,它可以以多种方式编写。您可以将 VBA MID 宏分配给您的活动按钮,每当单击该事件时,它都会执行宏操作。使用该事件,您可以一次性为所有数据提取中间名称。

以下是编写 VBA 宏以使用 VBA TRIM 函数消除给定字符串中不需要的空格字符的步骤。

步骤 1:打开 Excel 工作簿。从功能区选项卡单击开发人员窗口 -> Visual Basic 编辑器,或直接单击快捷键 Alt + F11。

步骤 2:将显示 VB 编辑器窗口。 下一步是创建一个模块。 从功能区选项卡中单击插入 -> 单击模块。

VBA MID Function

步骤 3:将插入模块窗口。以宏名称开头程序,后跟变量声明。将变量值设置为 Excel 选择。

参考以下宏代码

步骤 4:由于我们将需要迭代函数以处理更多单元格,因此我们将使用 For 循环。在循环内部,我们将修剪字符串并将值存储在 Excel 单元格中。完成后,我们将使用 VBA MsgBox 显示一条消息。

步骤 5:完成代码编写后,我们将关闭 VBA 编辑器窗口。再次,转到您的 Excel 工作表,然后单击“开发人员”->“插入”菜单。

如下图所示,您将看到一个显示窗体控件和 ActiveX 控件的下拉菜单。从列表中选择按钮选项。

VBA MID Function

步骤 6:使用鼠标光标,在 Excel 工作表的任意位置绘制按钮形状。分配一个宏名称,您也可以从创建的宏列表中选择。这里我们选择了 MID_Function_Example2。单击“确定”。

VBA MID Function

结果,按钮将在 Excel 工作表的选定位置创建。您还可以通过双击其顶部来更改名称。这里,我们提到了 MID 函数。

VBA MID Function

步骤 7:最后一步是将一些宏分配给此按钮。右键单击 **MID** 按钮。将出现一个窗口,显示可用的宏。选择名称为“MID_Function_Example2”的宏,然后单击“确定”。完成后,Excel 将把该宏分配给此按钮。

输出

我们将向不同单元格插入一些文本字符串来测试上述宏。

VBA MID Function

为了进行测试,选择带有数据的单元格,然后单击 MID 按钮。

VBA MID Function

结果,您将注意到所有中间名称都已从单元格列表中提取出来。

# MID 函数示例 3:VBA MID 程序返回空字符串。

有时,即使所有逻辑都正确,您也会收到一个空字符串。如果参数 start_number 大于 text_string 参数的长度,则通常会发生此类错误。让我们看一个 VBA MID 程序将返回空字符串的示例。

步骤 1:打开 VBA 开发人员选项卡。 转到 Excel 工作表,从功能区选项卡中单击开发人员窗口 -> Visual Basic 编辑器,或直接单击快捷键 Alt +F11。

步骤 2:将显示 VB 编辑器窗口。 下一步是创建一个模块。 从功能区选项卡中单击插入 -> 单击模块。

VBA MID Function

步骤 3:您会注意到,VBA 将插入一个新的模块窗口。 首先引入您的宏名称,后跟变量的声明来启动程序。

请参考以下给出的宏代码

步骤 4:接下来,我们将使用 VBA MID 函数。在参数中,我们将传递字符串、起始字符 i.e. 26,并在长度参数中传递 15。如您所见,起始字符比实际字符串长。

将提取的值存储在我们的变量中,稍后通过 MsgBox 返回该变量。


VBA MID Function

输出

通过单击“运行”或按 F5 键运行您的宏。结果,您将注意到 VBA 将显示一个 MsgBox,其中包含中间字符串。

VBA MID Function

宏抛出了一个空字符串,如上所示;请务必始终确保两个参数的值都已正确输入并符合逻辑。


下一个主题VBA Right 函数