Vba:如何将字符串拆分为数组(带有示例)


您可以使用以下基本语法使用 VBA 将字符串拆分为数组:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SingleValue = Split(Range(" A " & i), " ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

此特定示例根据每个字符串中的空格划分A2:A7范围内的每个字符串,然后将每个字符串的结果元素分配给单元格范围B2:B7C2:C7

以下示例展示了如何在实践中使用此语法。

示例:使用 VBA 将字符串拆分为数组

假设我们在 Excel 中有以下字符串列表:

假设我们要根据空格拆分每个字符串,然后将每个字符串的结果元素分配给新单元格。

我们可以创建以下宏来执行此操作:

 SubSplitString ()

    Dim SplitValues() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SplitValues = Split(Range(" A " & i), " ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SplitValues(j - 1)
       Next j
       
    Next i
    
End Sub

当我们运行这个宏时,我们会收到以下输出:

VBA将字符串拆分为数组

请注意,B 列和 C 列包含 A 列中每个全名的名字和姓氏。

另请注意,您可以使用 VBA Split函数根据不同的分隔符拆分数组。

例如,假设我们有以下电子邮件列表:

假设我们要根据@符号出现的位置将每封电子邮件拆分为一个数组。

我们可以创建以下宏来执行此操作:

 SubSplitString ()

    Dim SplitValues() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SplitValues = Split(Range(" A " & i), " @ ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SplitValues(j - 1)
       Next j
       
    Next i
    
End Sub

当我们运行这个宏时,我们会收到以下输出:

拆分函数根据 @ 符号拆分 A 列中的每封电子邮件,并将结果项目显示在 B 列和 C 列中。

注意:您可以在此处找到 VBA Split函数的完整文档。

其他资源

以下教程说明如何使用 VBA 执行其他常见任务:

VBA:如何计算字符串中字符的出现次数
VBA:如何检查一个字符串是否包含另一个字符串
VBA:如何计算具有特定文本的单元格

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注