Накидал без особых красивостей :)
Из минусов:
- между значениями после обработки остаются пустые строки, равные количеству элементов - 1 во втором столбце (соответственно конкатенированные значения); пустые строки в экселе подчистить не должно быть проблемой;
- начальная инициализация завязана на расположение элементов.
Не забудьте расширить диапазон Range() для цикла.
Sub concat()
txt = Range("B1").Text
Range("A1").Select
Set hCell = ActiveCell
For Each cell In Range("A1:A20")
If cell.Value <> "" Or cell.Offset(0, 1).Value = "" Then
hCell.Offset(0, 1).Value = txt
cell.Select
Set hCell = ActiveCell
txt = ""
End If
If cell.Offset(0, 1).Value = "" Then
Exit Sub
End If
txt = txt + vbCrLf + cell.Offset(0, 1).Text
' Очистка ячейки
cell.Offset(0, 1).Value = ""
Next
End Sub