如何在 Microsoft Excel 中使用 VBA Split String into Array 函数26 Apr 2025 | 12 分钟阅读 在 Excel VBA (Visual Basic for Applications) 中,将字符串分割成数组被认为是一项常见任务,有助于处理和操作文本数据。通常,Split 函数在 Excel VBA 中起着至关重要的作用。它允许用户根据指定的定界符轻松地将字符串分成更小的部分,并将每个片段作为数组中的独立元素有效返回。尽管如此,"Split 函数" 被认为是 VBA 中简单且多功能的。它接受两个主要参数:要分割的字符串以及确定字符串分割位置的定界符。特定的定界符可以是任何字符,例如空格、逗号、分号,甚至是字符组成的 字符串。该函数通常返回一个数组,其中每个元素代表原始字符串的一个部分,在每个定界符出现处进行分割。
然而,Split 函数 的灵活性允许进行自定义。即使用户未提供定界符,它也会默认按空格分割字符串。此外,Split 函数还可以接受一个可选参数来指定数组元素的最大数量,使其更具适应性。 VBA 分割字符串“VBA 分割字符串数组函数主要使用指定的定界符将字符串划分为较小的子字符串,这些子字符串可以存储在数组中。原始字符串的元素可以轻松访问和修改。由于其多功能性以及处理各种定界符的能力,VBA 分割字符串数组函数是解析和分析文本数据的有效工具。” 让我们来看一个例子,我们有一个字符串 “This is a sample sentence,”,并且我们想有效地将其分割成一个包含单个单词的数组。 代码 ![]() 说明
我们现在可以在 VBA 分割字符串到数组函数中有效地使用空格字符 (" ") 作为定界符。但是,此代码片段会将输入字符串分解成单独的单词,然后遍历生成的数组,仅通过使用“Debug.Print”语句显示每个单词。输出将是一个单词列表:“This”、“is”、“a”、“sample”和“sentence”。 ![]() 有用提示关于在 Microsoft Excel 中使用相应的 VBA 分割字符串的几个关键点如下:
如何在 Microsoft Excel VBA 中轻松将分割的字符串转换为数组?因此,要在 Microsoft Excel VBA 中将分割的字符串转换为数组,个人需要一个名为“SPLIT”的函数。此特定的 VBA 函数根据提供的定界符将提供的字符串值分割成不同的部分。
以下是使用相应的 SPLIT 函数的语法。 Split 函数
示例 #1 现在,让我们看实际示例并理解概念。 步骤 1:定义 VBA 变量:我们将从定义 VBA 中保存字符串值的变量开始。 代码 ![]() 步骤 2:分配字符串:现在,对于这个变量,我们将分配字符串为:“Bangalore is the capital city of Karnataka.” 代码 ![]() 步骤 3:定义另一个变量:在这里,我们将继续声明另一个能够在此情况下保存更多句子的变量,我们将变量定义为 “Array。” 代码 ![]() 对于这个数组变量,我们将利用 Microsoft Excel VBA 中的 SPLIT 函数来有效地将字符串分割成数组。 代码 ![]() 表达式是我们的字符串值;而变量已经保存了字符串值,所以我们只需要输入变量名。 ![]() 但是,这个字符串中的定界符通常是空格字符,所以要提供它。 代码 到目前为止,我们将保留 SPLIT 函数的其他部分。尽管 SPLIT 函数将字符串值分割成 7 部分,并且每个单词都以空格字符为代价进行分隔。由于我们声明了变量 “SingleValue” 为数组,我们也可以将所有 7 个值赋给这个变量。 我们可以按以下方式编写代码。 代码 ![]() 我们将继续运行代码,然后我们将看到我们在消息框中实际得到什么。 ![]() ![]() 现在,我们可以看到第一个单词“Bangalore”。要更频繁地显示其他单词,我们可以按如下方式编写代码。 代码 ![]() 我们还需要运行代码,看看消息框中会得到什么。每个单词都被分别分割成了数组。 ![]() 示例 #2 我们都知道,在 VBA(Visual Basic for Applications)中,处理字符串和数组被认为是常见任务,特别是在操作数据或处理多行文本时。一个常见的场景是我们有一个多行字符串,并且我们实际上想将其分割成一个包含单个行的数组。相关的 VBA 主要提供 Split 函数来实现这一点,而且它非常简单易用。 在本次说明中,我们将通过一个示例,演示如何根据换行符轻松地将多行字符串分割成数组。 步骤 1:创建新宏并声明变量:我们将从 VBA 中的宏创建开始。我们将此宏命名为 SplitByNewline 以反映它实际执行的任务。在此宏中,我们将声明两个变量,如下所示
这是代码的开头 ![]() 步骤 2:将多行字符串赋给 myString:我们必须将多行字符串赋给 myString 变量。在 VBA 中,我们主要使用 vbCrLf 来表示换行符。这是一个 VBA 中的预定义常量,通常代表“回车符”和“换行符”的组合,这在大多数系统中会创建一个新行。 尽管如此,我们通常需要创建多行字符串,我们还将通过在每行文本之间使用 & vbCrLf & 来连接每一行。在代码中看起来是这样的 ![]() 在大多数情况下,在这个例子中,myString 包含三行 第 1 行 第 2 行 第 3 行 & vbCrLf & 其他部分通常可以有效地确保每行都由换行符正确分隔。 步骤 3:使用 Split 函数:既然我们有了多行字符串,我们就可以轻松地将其分割成数组。在大多数情况下,在这种情况下,定界符是 vbCrLf。我们在 myString 上调用 Split 函数,然后需要将结果赋给 myArray。代码如下 ![]() 此时,myArray 可能包含来自原始字符串的各个行的数组。数组的每个元素对应 myString 中的一行文本。 步骤 4:循环遍历数组并显示元素:一旦我们将字符串分割成数组,我们就需要访问和显示每个元素。为了实现这一点,我们也可以使用 For 循环。LBound 函数主要返回数组中第一个元素的索引,而 UBound 函数返回最后一个元素的索引。 显示数组元素的循环如下 ![]() 此外,此循环将遍历 myArray 的每个元素,并将其打印到立即窗口。Debug. Print 语句通常用于将每个元素的值输出到立即窗口,这是在 VBA 中进行调试和检查代码输出的绝佳工具。 步骤 5:运行代码:当我们在 VBA 编辑器中运行此代码时,它会根据换行符将 myString 分割成数组。然后,数组的每个元素都会有效地打印在立即窗口中。 输出将如下所示 第 1 行 第 2 行 第 3 行 ![]() 然而,正如预期的那样,立即窗口将不会在单独的行上显示。 完整代码 这是此示例的完整代码 此外,在这个特定的示例中,我们使用了 VBA 的 Split 函数来处理多行字符串,并根据换行符将其分割成数组。通过遍历数组,我们在立即窗口中显示每一行。这是在 Microsoft Excel VBA 中处理多行字符串的一种简单而有效的方法,而 Split 函数可以成为文本处理和操作的强大工具。 需要记住的重要事项。个人在 Microsoft Excel 中使用相应的 VBA 分割字符串到数组函数时需要记住的几点如下:
常见问题解答/FAQ。VBA (Visual Basic for Applications) 中的 Split 函数通常用于将字符串分解成子字符串数组,这些子字符串基于指定的定界符。然而,在使用此函数时,通常会出现一些问题和疑虑,我们将在下面进行解答。 问题 1:我们可以在 Microsoft Excel VBA 中为 Split 函数使用不同的 VBA 定界符吗? 答案:是的,VBA 中的相应 Split 函数被认为是多功能工具,它足以允许使用任何字符或字符集作为定界符。定界符是分隔原始字符串为更小部分的字符或字符串。虽然我们经常看到逗号或空格用作定界符,但我们可以使用任何适合我们数据的字符或字符组合。 问题 2:如何使用 VBA 中的 Split 处理前导和尾随空格? 答案:当我们实际分割字符串时,结果的数组元素可能仍然包含不想要的开头或结尾空格。不幸的是,Split 函数不会自动删除所有这些空格。但是,我们可以通过使用 Trim 函数轻松处理这个问题,该函数分别删除数组中每个元素的前导或尾随空格。 这里有一个例子 此代码从数组中的每个水果名称中修剪空格,确保没有前导或尾随空格。 问题 3:在 VBA 中进行字符串操作是否有 Split 函数的替代方法? 答案:虽然 Split 函数非常有用,但还有其他几种方法可用于 VBA 中的字符串操作,这主要取决于我们的需求。一些最常见的替代方法包括:
|
我们请求您订阅我们的新闻通讯以获取最新更新。