Sub Test()
MsgBox fcnGetToken("A|B|C|D", 2)
MsgBox fcnGetToken("A|B|C|D", 7)
MsgBox fcnGetToken("A|B|C|D", 1, "*")
End Sub
Function fcnGetToken(str As String, lngTokenNumber As Long, Optional strDelimiter As String = "|") As String
On Error GoTo Err_Handler
If InStr(str, strDelimiter) > 0 Then
fcnGetToken = Split(str, strDelimiter)(lngTokenNumber - 1)
Else
Err.Raise 5
End If
lbl_Exit:
Exit Function
Err_Handler:
Select Case Err.Number
Case 9
fcnGetToken = "Token number out of range"
Resume lbl_Exit
Case 5
fcnGetToken = "Argument (delimiter) not valid"
Resume lbl_Exit
Case Else
'As required
End Select
End Function