Option Explicit
Dim strUnparsed As String Dim strParsed(1 To 20) As String Dim strSeparator As String Dim strStart As Integer Dim srchStart As Integer Dim i As Integer Private Sub btnPARSE_Click() If txtString.Text <> "" Then strUnparsed = txtString.Text strSeparator = " " 'Call the function sending the text to be parsed, 'and the separator to parse it with. Call PARSE(strUnparsed, strSeparator) 'To show you the finished result. i = 1 Do While strParsed(i) <> "" MsgBox strParsed(i) i = i + 1 Loop End If End Sub Public Function PARSE(strUnparsed, strSeparator) 'Clear previously parsed words.... For i = 1 To 20 strParsed(i) = "" Next i 'Do you really want to know how this works? i = 1 strStart = 1 srchStart = 1 If InStr(1, strUnparsed, strSeparator, vbTextCompare) <> 0 Then Do strParsed(i) = Mid(strUnparsed, srchStart, _ InStr(strStart, strUnparsed, strSeparator, _ vbTextCompare) - srchStart) srchStart = InStr(strStart, strUnparsed, _ strSeparator, vbTextCompare) + Len(strSeparator) strStart = srchStart If strParsed(i) <> "" Then i = i + 1 End If Loop Until InStr(strStart, strUnparsed, strSeparator, _ vbTextCompare) = 0 strParsed(i) = Mid(strUnparsed, srchStart, _ Len(strUnparsed) - srchStart + 1) Else strParsed(1) = strUnparsed End If End Function Inputs:The string thats going to be split The separator Returns:An array of parsed words from the string Assumes:An edit box named "txtString" is present A button names "btnPARSE" is present |