标签:VBA,Split函数
Excel VBA提供了一种自定义的方式来拆分单元格中的文本,即Split函数,这在需要将单元格的内容拆分为许多部分时非常有用。
Split函数的语法如下:
Split(string,delimiter,limit,compare)
其中,
下面是拆分字符串的一个基本示例:
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, “ “)
省略最后两个参数(limit和compare,因为它们是可选的)。
接下来的例子使用了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)