Try this code
Sub SplitValuesToNextColumns()
Dim rng As Range, cl As Range, str As String
Dim regex As Object, mc As Object
Set regex = CreateObject("VBScript.regexp")
regex.ignorecase = False
regex.Global = True
On Error Resume Next
Set rng = Application.InputBox(Prompt:="Select column range" & vbLf & _
"Macro result will spill in the next 4 columns of the selected range", _
Title:="Select Range", Default:="B3", Type:=8)
On Error GoTo 0
If rng Is Nothing Then Exit Sub
For Each cl In rng
str = Replace(Replace(Replace(Replace(cl.Value, _
"1-Name=", "["), _
", 2-Last Name=", "]["), _
", 3-Address=", "]["), _
", 4-Status=", "][") & "]"
regex.Pattern = "\[[^]]+\]"
Set mc = regex.Execute(str)
For i = 0 To mc.Count - 1
Cells(cl.Row, cl.Offset(, i + 1).Column) = _
Mid(mc(i), 2, Len(mc(i)) - 2)
Next i
Next cl
End Sub
EDIT - No need for regex
As suggested by @RaymondWu in comments below.
Sub SplitValuesToNextColumns()
Dim rng As Range, cl As Range, str As String, arr
On Error Resume Next
Set rng = Application.InputBox(Prompt:="Select column range" & vbLf & _
"Macro result will spill in the next 4 columns of the selected range", _
Title:="Select Range", Default:="B3", Type:=8)
On Error GoTo 0
If rng Is Nothing Then Exit Sub
For Each cl In rng
str = Replace(Replace(Replace(Replace(cl.Value, _
"1-Name=", ""), _
", 2-Last Name=", "|"), _
", 3-Address=", "|"), _
", 4-Status=", "|")
arr = Split(str, "|")
cl.Offset(, 1).Resize(1, UBound(arr) + 1) = arr
Next cl
End Sub
