分享

简谈VBA的Split函数

 hercules028 2022-06-27 发布于四川
excelperfect

标签:VBASplit函数
Excel VBA提供了一种自定义的方式来拆分单元格中的文本,即Split函数,这在需要将单元格的内容拆分为许多部分时非常有用。
Split函数的语法如下:
Split(string,delimiter,limit,compare)
其中,
  • 参数string,想要拆分的字符串。
  • 参数delimiter,将字符串分成段的字符。
  • 参数limit,默认值为-1,意味着每个分隔符都将进行拆分。
  • 参数compare,告诉Excel是执行二进制比较还是文本比较。零(0)用于执行二进制比较(这是默认值)。数字一(1)用于执行文本比较。

下面是拆分字符串的一个基本示例:
Sub SplitString()
    Dim arr() As String
    Dim str As String
    Dim i
    str = 'I am a student'
    arr = Split(str)
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
End Sub
运行程序后,在立即窗口中的结果如下图1所示。
图片
1
默认情况下,Split函数以空格作为分隔符来拆分字符串,因此下面的语句作用相同:
arr=Split(str, “ “)
省略最后两个参数(limitcompare,因为它们是可选的)。
接下来的例子使用了limit参数:
Sub SplitString2()
    Dim arr() As String
    Dim str As String
    Dim i
    str = 'I am a student'
    arr = Split(str, ' ', 2)
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next
End Sub
运行程序后,在立即窗口中的结果如下图2所示。
图片
2
下面的示例拆分字符串并将结果输入到工作表单元格:
Sub SplitString3()
    Dim arr() As String
    Dim var As Variant
    Dim str As String
    Dim i As Integer
    Dim j As Integer
    str = 'I am a student'
    arr = Split(str)
    ReDim var(0, UBound(arr) + 1)
    For i = 0 To UBound(arr)
        If arr(i) <> ' ' Then
            var(0, j) = arr(i)
            j = j + 1
        End If
    Next i
    Range(Cells(1, 1), Cells(1, UBound(var, 2))) = var
End Sub
运行上述过程后,将在单元格区域A1:D1中输入拆分后的字符串。如果想在单元格区域A1:A4中输入拆分后的字符串,可以使用语句:
Range(“A1:A” & UBound(var,2))=Application.Transpose(var)
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多