VBA Split 函数

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

在使用 VBA Excel 时,用户可能经常需要根据给定的分隔符将字符串拆分为子字符串。例如,如果给定一个位置,您可以使用 VBA Split 函数获取由空格分隔的位置的不同部分(在这种情况下,空格将是分隔符)。

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

什么是 Split 函数?

"SPLIT 字符串函数用于根据提供的分隔符将字符串拆分为子字符串。它返回一个基于零的一维数组,其中包含子字符串的各个部分。"

VBA Split 函数是一个内置函数,属于字符串/文本函数类别。此函数在 Microsoft Visual Basic 编辑器中用 VBA 宏编码。但是,您也可以在 Excel 电子表格中使用 Split 作为 Excel 函数。

语法

参数

  • 表达式(必需): 此参数表示您要根据分隔符拆分的输入字符串。
  • 分隔符(可选): 此参数表示用于拆分字符串的分隔符。它通常涉及“表达式”参数。例如,您有一个字符串“Hello,World,This,is,my,program”,逗号是可以在 Split 函数中使用的分隔符,用于将字符串拆分为不同的子字符串。如果未为此参数传递任何值,则默认采用空格字符。
  • 限制(可选): 此参数指定用户希望返回的子字符串总数。例如,如果您只想从字符串中提取前 3 个子字符串,您将在此参数中传递 3。
    如果未为此参数传递任何值,则默认采用 -1,这将返回所有子字符串。
  • 比较(可选): 在评估子字符串时,此参数返回用户希望在 SPLIT 函数中使用的比较类型。下面给出了一些比较选项
    • 当 Compare 为 0 时: 0 表示二进制比较。当您的分隔符是文本字符串(例如 XYZ)时,这很有用,这将区分大小写。“XYZ”将与小写“xyx”不同。
    • 当 Compare 为 1 时: 1 表示文本比较。如果您的分隔符是文本字符串(例如 XYZ),即使您的“表达式”字符串中包含“xyz”,它也会被视为分隔符。

返回

VBA Split 函数返回一个基于零的一维数组,其中包含子字符串的各个部分。

示例

Split 程序 1:使用默认空格分隔符拆分字符串。

字符串 = Welcome to the world of VBA programming

VBA Split 是一个内置函数,可以快速帮助根据提供的分隔符将字符串拆分为子字符串。以下是使用 Split 函数编写 VBA 宏以拆分字符串的步骤

步骤 1:通过单击快捷键 Alt +F11 或单击开发⼯具窗⼝ -> 视觉基本编辑器,转到 VBA 开发⼯具选项卡。

步骤 2: VB 编辑器将出现。下一步是创建一个模块。右键单击 VBA 项目-> 单击插入-> 单击模块。

VBA Split Function

步骤 3: 将插入 Moule 窗口。引入宏名称,后跟变量的声明。接下来,我们将引入一个名为 Result() 的方法。

请参考以下给出的宏代码

步骤 4: 我们将调用 Split 函数,在其中传递字符串“Textstr”并将值存储在 result 方法中。

请参考以下给出的宏代码


VBA Split Function

输出

按 F5 键运行代码并获取输出。结果 Split 函数拆分字符串“textstr”并将每个子字符串存储到 Result 数组中。

在后台,我们将有以下子字符串

  • Result(0) 存储子字符串 "Welcome"
  • Result(1) 存储子字符串 "To"
  • Result(2) 存储子字符串 "World"
  • Result(3) 存储子字符串 "of"
  • Result(4) 存储子字符串 "VBA"
  • Result(5) 存储子字符串 "programming."

注意:在此程序中,省略了分隔符参数,因此它将空格字符作为默认分隔符。

Split 示例 2 - 计算字符串中存在的单词数

VBA SPLIT 函数也可以巧妙地用于查找句子中存在的总单词数。该程序将与上述程序相同,唯一的技巧是在拆分字符串后计算分配给 Result 数组的单词数。

以下是使用 Split 函数编写 VBA 宏以获取单词数的步骤

步骤 1:通过单击快捷键 Alt +F11 或单击开发⼯具窗⼝ -> 视觉基本编辑器,转到 VBA 开发⼯具选项卡。

步骤 2: VB 编辑器将出现。下一步是创建一个模块。右键单击 VBA 项目-> 单击插入-> 单击模块。

VBA Split Function

步骤 3: 将插入 Moule 窗口。引入宏名称,后跟变量的声明。接下来,我们将引入一个名为 Result() 的方法。

请参考以下给出的宏代码

步骤 4: 我们将调用 Split 函数,在其中传递字符串“Textstr”并将值存储在 result 方法中。

请参考以下给出的宏代码

步骤 5: 使用 UBound 函数找到数组的上限。由于输出数组的基数为 0,因此我们将在该值上加 1,并使用 MsgBox 显示返回的单词数。


VBA Split Function

输出

按 F5 键运行代码并获取输出。结果是,它将返回一个消息框,显示单词数为 7。

VBA Split Function

SPLIT 示例 3 - 使用逗号分隔符拆分字符串

在前两个示例中,您会注意到我们只使用了表达式参数,并且在分隔符参数中,我们一直在使用默认的空格字符。让我们看一个示例,其中我们将使用另一个分隔符。

以下是编写 VBA 宏以基于逗号作为分隔符返回数组的步骤

步骤 1:通过单击快捷键 Alt +F11 或单击开发⼯具窗⼝ -> 视觉基本编辑器,转到 VBA 开发⼯具选项卡。

步骤 2: VB 编辑器将出现。下一步是创建一个模块。右键单击 VBA 项目-> 单击插入-> 单击模块。

VBA Split Function

步骤 3: 将插入 Moule 窗口。引入宏名称,后跟变量的声明。接下来,我们将引入一个名为 Result() 的方法。

请参考以下给出的宏代码

步骤 4: 我们将调用 Split 函数,在参数中,我们将传递字符串和分隔符 (,)。接下来,我们将使用 UBOUND 和 LBOUND 函数来查找数组的上限和下限。稍后,我们将使用 For Next 循环遍历“Result”数组的每个子字符串。

代码


VBA Split Function

输出

按 F5 键运行代码并获取输出。结果是,它将返回消息框,显示所有子字符串。

VBA Split Function
下一话题VBA LEFT 函数