Function SPLITTEXT(text As String, _ Optional LanguageType As Integer = 1, _ Optional IncludeBlankSpace As Boolean = False) As Variant Dim sCut As String, sBack As String, sNext As String Dim sTMP As String Dim i As Integer Application.Volatile If LanguageType > 5 Or LanguageType < 0 Then SPLITTEXT = CVErr(xlErrNA) Exit Function End If For i = 1 To Len(text) sCut = Mid(text, i, 1) If i > 1 And i < Len(text) Then sBack = Mid(text, i - 1, 1) sNext = Mid(text, i + 1, 1) End If Select Case sCut Case 0 To 9 If LanguageType = 1 Then sTMP = sTMP & sCut Case "a" To "z", "A" To "Z" If LanguageType = 2 Then sTMP = sTMP & sCut Case "°¡" To "ÆR", "¤¡" To "¤¾", "¤¿" To "¤Ó" If LanguageType = 3 Then sTMP = sTMP & sCut Case "." If LanguageType = 1 Then If IsNumeric(sBack) * IsNumeric(sNext) Then sTMP = sTMP & sCut End If End If Case " " If IncludeBlankSpace Then If LanguageType >= 2 And LanguageType <= 4 Then If sBack <> " " And Not IsNumeric(sBack) Then sTMP = sTMP & sCut End If End If Case Else If LanguageType = 4 Then If Asc(sCut) >= -13663 And Asc(sCut) < 0 Then sTMP = sTMP & sCut ElseIf LanguageType = 5 Then Select Case Asc(sCut) Case 33 To 47, 58 To 64, 91 To 96, 123 To 126 sTMP = sTMP & sCut End Select End If End Select Next Select Case LanguageType Case 1 SPLITTEXT = CDbl(sTMP) Case Else SPLITTEXT = sTMP End Select End Function