Добрый вечер, любители VBA!
Хотелось бы реализовать перенос текстовой строки в Excel.
Если ширина текстовой строки превышает lw1>425, остальные символы нужно перенести на ячейку в строке ниже.
Например текст
вавауклдщщыйзкш (>425), то будет вот так
вавауклдщщы
йзкш
До переноса я пока не дошел, поскольку снова зациклился на цикле, который неправильно работает
Sub width_rng()
Dim i As Integer
Cells(1, 3).EntireColumn.AutoFit
lw1 = Cells(1, 3).Width
slw1 = Len(Cells(1, 3).Value)
slw2 = Len(Cells(1, 3).Value) - (Len(Cells(1, 3).Value) - 1)
Cells(1, 4).Value = Right(Cells(1, 3).Value, 1)
Cells(1, 4).EntireColumn.AutoFit
lw2 = Cells(1, 4).Width
i = 1
Do While lw1 > 425
ilw1 = Right(Cells(1, 3).Value, i)
Cells(1, 3).EntireColumn.AutoFit
lw1 = Cells(1, 3).Width
i = i + 1
Loop
Cells(1, 3).ColumnWidth = 1.33
Cells(1, 4).ColumnWidth = 1.33
End Sub
А именно в окне Locals lw1 остается постоянной и невозможно выйти из цикла.
Хотелось бы реализовать перенос текстовой строки в Excel.
Если ширина текстовой строки превышает lw1>425, остальные символы нужно перенести на ячейку в строке ниже.
Например текст
вавауклдщщыйзкш (>425), то будет вот так
вавауклдщщы
йзкш
До переноса я пока не дошел, поскольку снова зациклился на цикле, который неправильно работает
Sub width_rng()
Dim i As Integer
Cells(1, 3).EntireColumn.AutoFit
lw1 = Cells(1, 3).Width
slw1 = Len(Cells(1, 3).Value)
slw2 = Len(Cells(1, 3).Value) - (Len(Cells(1, 3).Value) - 1)
Cells(1, 4).Value = Right(Cells(1, 3).Value, 1)
Cells(1, 4).EntireColumn.AutoFit
lw2 = Cells(1, 4).Width
i = 1
Do While lw1 > 425
ilw1 = Right(Cells(1, 3).Value, i)
Cells(1, 3).EntireColumn.AutoFit
lw1 = Cells(1, 3).Width
i = i + 1
Loop
Cells(1, 3).ColumnWidth = 1.33
Cells(1, 4).ColumnWidth = 1.33
End Sub
А именно в окне Locals lw1 остается постоянной и невозможно выйти из цикла.