VBA将字符串拆分为数组如何在Excel VBA中将字符串拆分为数组?

Excel VBA将字符串拆分为数组

字符串是连接在一起的字符的集合,当这些字符被分割并存储在变量中时,该变量将成为这些字符的数组,而我们用来将字符串拆分为数组的方法是使用SPLIT函数。 vba将字符串拆分为一维字符串。

像VBA中的工作表一样,我们也具有处理String或Text值的功能。我们非常熟悉字符串操作,例如提取冷杉名称,姓氏,中间名等。但是在VBA中将字符串值拆分为数组的想法呢?是的,您听说的没错,我们可以使用VBA编码将字符串句子拆分为数组,在这篇特殊文章中,我们将向您展示如何在Excel VBA中将字符串拆分为数组。

什么是将字符串拆分为数组?

首先让我澄清一下,“将字符串放入数组”仅是“句子或字符串的不同部分将被分成多个部分”。例如,如果句子是“班加罗尔是卡纳塔克邦的首都”,那么每个单词都是一个不同的数组。

因此,如何将这句话分解为数组是本文的主题。

如何在Excel VBA中将拆分字符串转换为数组?

要将拆分后的字符串转换为VBA中的数组,我们有一个名为“ SPLIT”的函数。这是一个VBA函数,它根据提供的定界符执行将提供的字符串值拆分为不同部分的任务。

例如,如果句子是“班加罗尔是卡纳塔克邦的首都”,则空格是每个单词之间的分隔符。

下面是SPLIT函数的语法。

  • 值或表达式: 这是我们试图通过分隔字符串的每个部分来将其转换为数组的字符串或文本值。
  • [定界符]: 这不过是将字符串中每个单词分开的常见事物。在我们的句子“班加罗尔是卡纳塔克邦的首都”中,每个单词都用空格分隔,因此我们的定界符是空格。
  • [限制]: 限制不过是我们想要多少零件。例如,在句子“班加罗尔是卡纳塔克邦的首都”中,如果我们只需要三部分,我们将分为七个部分,然后将第一部分作为“班加罗尔”,将第二部分作为“是”,将第三部分作为其余部分。句子即“卡纳塔克邦的首都”。
  • [比较]: 目前有99%的时间未使用此功能,因此我们暂时不要触摸此功能。
您可以在此处下载此VBA拆分字符串到数组Excel模板– VBA拆分字符串到数组Excel模板

范例#1

好的,现在让我们看一些实际的例子。

步骤1: 定义VBA变量以保存字符串值。

代码:

 Sub String_To_Array()Dim StringValue作为字符串结尾Sub 

第2步: 为此变量指定字符串“班加罗尔是卡纳塔克邦的首都”。

代码:

 Sub String_To_Array()Dim StringValue As String StringValue =“班加罗尔是卡纳特卡的首都” End Sub 

第三步: 接下来定义另一个变量,该变量可以保存上述字符串值的每个部分。关于这一点,我们需要牢记的是,由于该句子有多个单词,我们需要将变量定义为“数组”以容纳多个值。

在这种情况下,我们的字符串中有7个单词,因此,请按以下方式定义数组。

代码:

 Sub String_To_Array()Dim StringValue As String StringValue =“班加罗尔是卡纳特卡的首都” Dim SingleValue()As String End Sub 

现在,对于此数组变量,我们将使用SPLIT函数将字符串拆分为Excel VBA中的数组。

代码:

 Sub String_To_Array()Dim StringValue As String StringValue =“班加罗尔是卡纳塔克邦的首都” Dim SingleValue()As String SingleValue = Split(StringValue,“”)结束Sub 

表达方式 是我们的字符串值,即变量已经保存了字符串值,因此只能输入变量名称。

定界符 此字符串中为空格字符,因此请提供相同的字符。

代码:

 Sub String_To_Array()Dim StringValue As String StringValue =“班加罗尔是卡纳塔克邦的首都” Dim SingleValue()As String SingleValue = Split(StringValue,“”)结束Sub 

到现在为止,请保留SPLIT功能的其他部分。

SPLIT函数将字符串值分成7个单词,每个单词分开,但以空格字符为代价。由于我们已经声明了变量 “ SingleValue” 作为数组,我们可以将所有7个值分配给该变量。

我们可以编写如下代码。

代码:

 Sub String_To_Array()Dim StringValue As String StringValue =“班加罗尔是卡纳塔克邦的首都” Dim SingleValue()As String SingleValue = Split(StringValue,“”)MsgBox SingleValue(0)结束Sub 

运行代码,然后在消息框中查看得到的内容。

到目前为止,我们可以看到第一个单词“ Bangalore”以显示其他单词,我们可以按如下方式编写代码。

代码:

 Sub String_To_Array()Dim StringValue As String StringValue =“班加罗尔是卡纳塔克邦的首都” Dim SingleValue()As String SingleValue = Split(StringValue,“”)MsgBox SingleValue(0)&vbNewLine&SingleValue(1)&vbNewLine&SingleValue (2)和vbNewLine和SingleValue(3)和_vbNewLine和SingleValue(4)和vbNewLine和SingleValue(5)和vbNewLine和SingleValue(6)End Sub 

现在运行代码,然后在消息框中查看得到的内容。

每个单词都被拆分成数组。

范例#2

现在设想一种将这些值存储到单元格(即,将每个单词存储到单独的单元格中)的情况。为此,我们需要在VBA中包括FOR NEXT循环。

下面的代码会将每个单词插入单独的单元格中。

 Sub String_To_Array1()Dim StringValue As String StringValue =“班加罗尔是卡纳塔克邦的首都” Dim SingleValue()As String SingleValue = Split(StringValue,“”)Dim k作为整数对于k = 1至7个像元(1,k) .Value = SingleValue(k-1)下一个k结束子 

如下图所示,这将插入每个单词。

要记住的事情

  • 数组和循环一起使用可使代码动态化。
  • SPLIT函数需要公共定界符,该定界符用于分隔句子中的每个单词。
  • 数组长度从零开始,而不是从1开始。