[FONT=Lucida Console][COLOR=Royalblue]Sub[/COLOR] a1113731a()
[I][COLOR=Dimgray]'https://www.mrexcel.com/forum/excel-questions/1113731-parse-data-into-3-data-point-first-middle-last-name.html[/COLOR][/I]
[COLOR=Royalblue]Dim[/COLOR] regEx [COLOR=Royalblue]As[/COLOR] [COLOR=Royalblue]Object[/COLOR], matches [COLOR=Royalblue]As[/COLOR] [COLOR=Royalblue]Object[/COLOR]
[COLOR=Royalblue]Dim[/COLOR] va, vb
[COLOR=Royalblue]Dim[/COLOR] i [COLOR=Royalblue]As[/COLOR] [COLOR=Royalblue]Long[/COLOR]
va = Range([COLOR=Darkcyan]"A1"[/COLOR], Cells(Rows.count, [COLOR=Darkcyan]"A"[/COLOR]).[COLOR=Royalblue]End[/COLOR](xlUp))
[COLOR=Royalblue]ReDim[/COLOR] vb([COLOR=Brown]1[/COLOR] [COLOR=Royalblue]To[/COLOR] [COLOR=Royalblue]UBound[/COLOR](va, [COLOR=Brown]1[/COLOR]), [COLOR=Brown]1[/COLOR] [COLOR=Royalblue]To[/COLOR] [COLOR=Brown]3[/COLOR])
[COLOR=Royalblue]Set[/COLOR] regEx = CreateObject([COLOR=Darkcyan]"VBScript.RegExp"[/COLOR])
[COLOR=Royalblue]With[/COLOR] regEx
.[COLOR=Royalblue]Global[/COLOR] = True
.MultiLine = True
.IgnoreCase = True
.pattern = [COLOR=Darkcyan]"\w+"[/COLOR]
[COLOR=Royalblue]End[/COLOR] [COLOR=Royalblue]With[/COLOR]
[COLOR=Royalblue]For[/COLOR] i = [COLOR=Brown]1[/COLOR] [COLOR=Royalblue]To[/COLOR] [COLOR=Royalblue]UBound[/COLOR](va, [COLOR=Brown]1[/COLOR])
[COLOR=Royalblue]If[/COLOR] regEx.test(va(i, [COLOR=Brown]1[/COLOR])) [COLOR=Royalblue]Then[/COLOR]
[COLOR=Royalblue]Set[/COLOR] matches = regEx.Execute(va(i, [COLOR=Brown]1[/COLOR]))
vb(i, [COLOR=Brown]1[/COLOR]) = matches([COLOR=Brown]0[/COLOR])
[COLOR=Royalblue]If[/COLOR] matches.count = [COLOR=Brown]2[/COLOR] [COLOR=Royalblue]Then[/COLOR]
vb(i, [COLOR=Brown]3[/COLOR]) = matches([COLOR=Brown]1[/COLOR])
[COLOR=Royalblue]ElseIf[/COLOR] matches.count = [COLOR=Brown]3[/COLOR] [COLOR=Royalblue]Then[/COLOR]
vb(i, [COLOR=Brown]2[/COLOR]) = matches([COLOR=Brown]1[/COLOR])
vb(i, [COLOR=Brown]3[/COLOR]) = matches([COLOR=Brown]2[/COLOR])
[COLOR=Royalblue]End[/COLOR] [COLOR=Royalblue]If[/COLOR]
[COLOR=Royalblue]End[/COLOR] [COLOR=Royalblue]If[/COLOR]
[COLOR=Royalblue]Next[/COLOR]
Range([COLOR=Darkcyan]"B1"[/COLOR]).Resize([COLOR=Royalblue]UBound[/COLOR](vb, [COLOR=Brown]1[/COLOR]), [COLOR=Brown]3[/COLOR]) = vb
[COLOR=Royalblue]End[/COLOR] [COLOR=Royalblue]Sub[/COLOR][/FONT]