Function splitx(str, Optional fuhao) '分割后,返回结果为数组
'类似split,对str字符串进行分割,如省略fuhao参数,则按位分割.
'如splitx("abcd")结果为a,b,c,d这样的数组
'splitx("1+-++2---+3", "+-")结果为1,2,3
Dim ar, tsfuhao As String, arfh, p, w%, lenfh%
'tsfuhao = WorksheetFunction.Unichar(WorksheetFunction.Hex2Dec("07A00"))
tsfuhao = WorksheetFunction.Unichar(10025)
'上面是ascii码转成的特殊字符
ReDim ar(Len(str) - 1)
'splitx 与split类似,无fuhao参数时,将rng按个分解,有fuhao参数时,按符号分解,如splitx("1+-2-+3","+-")结果为[1,2,3]
If IsMissing(fuhao) Then
For i = 1 To Len(str)
ar(i - 1) = Mid(str, i, 1)
Next
splitx = ar
Exit Function
End If
lenfh = Len(fuhao)
ReDim arfh(lenfh - 1)
For w = 1 To lenfh
arfh(w - 1) = Mid(fuhao, w, 1)
Next
For Each p In arfh
str = WorksheetFunction.Substitute(str, p, tsfuhao)
Next
Do While InStr(str, tsfuhao & tsfuhao)
str = WorksheetFunction.Substitute(str, tsfuhao & tsfuhao, tsfuhao)
Loop
splitx = Split(str, tsfuhao)
End Function
'类似split,对str字符串进行分割,如省略fuhao参数,则按位分割.
'如splitx("abcd")结果为a,b,c,d这样的数组
'splitx("1+-++2---+3", "+-")结果为1,2,3
Dim ar, tsfuhao As String, arfh, p, w%, lenfh%
'tsfuhao = WorksheetFunction.Unichar(WorksheetFunction.Hex2Dec("07A00"))
tsfuhao = WorksheetFunction.Unichar(10025)
'上面是ascii码转成的特殊字符
ReDim ar(Len(str) - 1)
'splitx 与split类似,无fuhao参数时,将rng按个分解,有fuhao参数时,按符号分解,如splitx("1+-2-+3","+-")结果为[1,2,3]
If IsMissing(fuhao) Then
For i = 1 To Len(str)
ar(i - 1) = Mid(str, i, 1)
Next
splitx = ar
Exit Function
End If
lenfh = Len(fuhao)
ReDim arfh(lenfh - 1)
For w = 1 To lenfh
arfh(w - 1) = Mid(fuhao, w, 1)
Next
For Each p In arfh
str = WorksheetFunction.Substitute(str, p, tsfuhao)
Next
Do While InStr(str, tsfuhao & tsfuhao)
str = WorksheetFunction.Substitute(str, tsfuhao & tsfuhao, tsfuhao)
Loop
splitx = Split(str, tsfuhao)
End Function