Вот код, который будет разбивать ячейки с переводами строк на столбцы. Вы должны быть в состоянии настроить его в зависимости от того, как выглядят ваши абзацы.
Sub SplitCellsAndExtend_New()
'takes cells with inside line feeds and creates new row for each.
'reverses merge into top cell.
'turn off updates to speed up code execution
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Dim strCell As String, lastRow As Long, lRowLoop As Long, j As Long, arSplit
Application.ScreenUpdating = False
Const lColSplit As Long = 4
Const sFirstCell As String = "A1"
Dim sSplitOn As String
sSplitOn = Chr(10)
lastRow = Cells(Rows.Count, lColSplit).End(xlUp).Row
For lRowLoop = lastRow To 1 Step -1
arSplit = Split(Cells(lRowLoop, lColSplit), sSplitOn)
If UBound(arSplit) > 0 Then
Rows(lRowLoop + 1).Resize(UBound(arSplit) + 1).Insert
Cells(lRowLoop, lColSplit).Resize(, UBound(arSplit) + 1).Value = arSplit
Cells(lRowLoop, lColSplit).Resize(, UBound(arSplit) + 1).Copy
Cells(lRowLoop + 1, lColSplit).PasteSpecial Transpose:=True
Cells(lRowLoop, 1).Resize(, lColSplit - 1).Copy Cells(lRowLoop + 1, 1).Resize(UBound(arSplit) + 1)
Rows(lRowLoop).Delete
End If
Set arSplit = Nothing
Next
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub