Подскажите пожалуйста решение! Есть бланк, в который вводятся данные из всплывающего списка. Но есть проблема - одна из ячеек бланка состоит из 2х коротких строк, и при необходимости текст надо как-то разделить и перенести в ячейки ниже. Бланк расширить или сделать перенос внутри ячейки нельзя. Реально ли сделать такой перенос текста?
Подскажите пожалуйста решение! Есть бланк, в который вводятся данные из всплывающего списка. Но есть проблема - одна из ячеек бланка состоит из 2х коротких строк, и при необходимости текст надо как-то разделить и перенести в ячейки ниже. Бланк расширить или сделать перенос внутри ячейки нельзя. Реально ли сделать такой перенос текста?ProRock
Отлично. Но забыл уточнить еще одну очень важную деталь. Между этими двумя строками есть еще одна строка. А так же расширять и удлинять строки нет возможности так-как это бланк и его форма и размеры ограниченно.
Отлично. Но забыл уточнить еще одну очень важную деталь. Между этими двумя строками есть еще одна строка. А так же расширять и удлинять строки нет возможности так-как это бланк и его форма и размеры ограниченно.ProRock
Сообщение отредактировал ProRock - Вторник, 05.03.2019, 08:45
Вот таким макросом можно. В модуль листа его - ПКМ на ярлык листа - Исходный текст [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then dl0_ = 40 x_ = Range("A1") Application.EnableEvents = 0 Range("A2").MergeArea.ClearContents If Len(x_) > dl0_ Then ar = Split(x_) For i = 0 To UBound(ar) dl_ = dl_ + Len(ar(i)) If dl_ < dl0_ Then x1_ = x1_ & " " & ar(i) Else x1_ = Trim(x1_) x2_ = Replace(x_, x1_ & " ", "") Range("A1") = x1_ Range("A2") = x2_ Exit For End If Next i End If Application.EnableEvents = 1 End If End Sub
[/vba] Конечно для Вас же гораздо удобнее было бы на реальном файле, но к нему легко подставить - заменяете А1, А2 и 40 (макс длина)
Вот таким макросом можно. В модуль листа его - ПКМ на ярлык листа - Исходный текст [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then dl0_ = 40 x_ = Range("A1") Application.EnableEvents = 0 Range("A2").MergeArea.ClearContents If Len(x_) > dl0_ Then ar = Split(x_) For i = 0 To UBound(ar) dl_ = dl_ + Len(ar(i)) If dl_ < dl0_ Then x1_ = x1_ & " " & ar(i) Else x1_ = Trim(x1_) x2_ = Replace(x_, x1_ & " ", "") Range("A1") = x1_ Range("A2") = x2_ Exit For End If Next i End If Application.EnableEvents = 1 End If End Sub
[/vba] Конечно для Вас же гораздо удобнее было бы на реальном файле, но к нему легко подставить - заменяете А1, А2 и 40 (макс длина) _Boroda_