Sub MySplitPhrase()
' Parses entries in column based on capital letters
Application.ScreenUpdating = False
Dim myStartRow As Long
Dim myLastRow As Long
Dim myColumn As Long
Dim iRow As Long
Dim myEntry As String
Dim myLen As String
Dim myAscii As Integer
Dim j As Long
' Specify which column you would like to start on (numeric value of column)
myColumn = 1
' Specify which row your data starts on
myStartRow = 2
' Find last row
myLastRow = Cells(Rows.Count, myColumn).End(xlUp).Row
' Loop through rows
For iRow = myStartRow To myLastRow
myEntry = Cells(iRow, myColumn).Value
myLen = Len(myEntry)
' If entry is greater than 1
If myLen > 1 Then
' Loop through entry backwards
For j = myLen To 2 Step -1
' Look for capitals (ascii codes 65-90)
myAscii = Asc(Mid(myEntry, j, 1))
If myAscii >= 65 And myAscii <= 90 Then
' If found captial, insert pipe symbol
myEntry = Left(myEntry, j - 1) & "|" & Mid(myEntry, j, myLen)
End If
Next j
End If
' Paste value back in cell
Cells(iRow, myColumn).Value = myEntry
Next iRow
' Parse data using text to columns with pipe delimiter
Columns(myColumn).TextToColumns Destination:=Cells(1, myColumn), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="|"
Application.ScreenUpdating = True
End Sub