Not sure I fully understand, but does this do it for you?
Dim myarray As Variant
Dim PWork1 As String, PWork2 As String, PWork3 As String, Origin As String
With ActiveCell
If .Value <> 0 Then
myarray = Split(Replace(.Value, vbLf & vbLf, vbLf), vbLf) 'breaks up cell based on linebreaks
PWork1 = myarray(0)
PWork2 = IIf(UBound(myarray) > 0, myarray(1), "")
PWork3 = IIf(UBound(myarray) > 1, myarray(2), "")
Origin = Split(Split(myarray(UBound(myarray)), "(")(1), ")")(0) 'returns originator name
Else
PWork1 = ""
PWork2 = ""
PWork3 = ""
Origin = ""
End If
End With