Extracting the Nth element from a String

D

Dan

I am using John Walkenbach function to extract the Nth element from a string:
this is working fine in most cases bit not when one of my Separator is
char(10) ---> the end of a line, any idea?

Many thanks,
Dan

Function EXTRACTELEMENT(Txt, n, Separator) As String
' Returns the nth element of a text string, where the
' elements are separated by a specified separator character
Dim AllElements As Variant
AllElements = Split(Txt, Separator)
EXTRACTELEMENT = AllElements(n - 1)
End Function
 
P

Peter T

Maybe this will explain

Sub test()
Dim i As Long, s As string

s = "A" & vbCr & "B" & vbLf & "C" & vbNewLine & "D"
For i = 1 To Len(s)
Debug.Print i, Asc(Mid(s, i, 1))
Next

s = Replace(s, vbCr, vbLf)
s = Replace(s, vbLf & vbLf, vbLf)

Debug.Print
For i = 1 To Len(s)
Debug.Print i, Asc(Mid(s, i, 1))
Next

s = Replace(s, vbCr, vbLf)

arr = Split(s, Chr(10))
For i = 0 To UBound(arr)
Debug.Print arr(i)
Next

End Sub

Ctrl-g to view the Immediate window

Of course don't use as written if your string might have double line breaks.

Regards,
Peter T
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top