Редактировать: Извините, неправильно прочитал ваши вопросы ...
Вы можете написать vba-скрипт так:
Sub test()
Dim result As String
result = Replace(ActiveCell.value, Chr(10), ";")
ActiveCell.Offset(1, 0).Select
ActiveCell.value = result
End Sub
Он возьмет активную ячейку, заменит все новые строки на точки с запятой и поместит результат в следующую строку.
Редактировать: Другая версия делает это для нескольких ячеек:
Sub test()
Dim value As String
Do
value = ActiveCell.value
If (value = "") Then Exit Do
ActiveCell.Offset(0, 1).value = Replace(ActiveCell.value, Chr(10), ";")
ActiveCell.Offset(1, 0).Select
Loop While (True)
End Sub
Эта версия будет начинаться с активной ячейки и проходить по всем ячейкам ниже, пока не найдет пустую ячейку.
Замененное значение записывается в ячейку рядом с исходной. Если вы хотите заменить исходное значение, удалите .Offset(0, 1)
.
Второй параметр - это значение, которое нужно заменить, это Chr(10)
, символ новой строки в нашем случае.