Страницы: 1
RSS
Применение выравнивания и начертания для текста в ячейке до первого переноса строки
 
МатросНаЗебре помог с кодом - разделить ячейки по строкам до первого переноса строки в ячейке и копирования в столбец А другого листа результата.
Что нужно дописать для выравнивания по центру и применения полужирного шрифта для текста до первого переноса?
Код
Const RANGE_IN = "A2:A74"
Const RANGE_OUT = "A1"
Sub SplitByChr10()
    Dim arr As Variant
    arr = Sheets("Лист1").Range(RANGE_IN)
    Dim rOut As Range
    Set rOut = Sheets("сюда").Range(RANGE_OUT)
    Dim brr As Variant
    Dim x As Integer
    x = Range(RANGE_OUT).Column
    rOut.Parent.Range(rOut.Parent.Range(RANGE_OUT), rOut.Parent.Cells(Rows.Count, x)).ClearContents
    rOut.EntireColumn.ColumnWidth = 85
    rOut.EntireColumn.WrapText = True
    Dim y As Long
    Dim u As Long
    For y = 1 To UBound(arr, 1)
        brr = Split(arr(y, 1), Chr(10))
        u = rOut.Parent.Cells(Rows.Count, x).End(xlUp).Row + 1
        u = Application.Max(Range(RANGE_OUT).Row, u)
        If UBound(brr) < 0 Then
            ReDim brr(1 To 1)
            brr(1) = " "
        End If
        rOut.Parent.Cells(u, x).Resize(UBound(brr) + 1, 1) = Application.Transpose(brr)
    Next
    u = rOut.Parent.Cells(Rows.Count, x).End(xlUp).Row + 1
    rOut.Parent.PageSetup.PrintArea = Cells(1, 1).Resize(u).Address
End Sub
 
Код
Const RANGE_IN = "A2:A74"
Const RANGE_OUT = "A1"

Sub SplitByChr10()
    Dim arr As Variant
    arr = Sheets("Лист1").Range(RANGE_IN)
    Dim rOut As Range
    Set rOut = Sheets("сюда").Range(RANGE_OUT)
    Dim brr As Variant
    Dim x As Integer
    x = Range(RANGE_OUT).Column
    With rOut.Parent.Range(rOut.Parent.Range(RANGE_OUT), rOut.Parent.Cells(Rows.Count, x))
        .ClearContents
        .Font.Bold = False
        .HorizontalAlignment = xlLeft
    End With
    rOut.EntireColumn.ColumnWidth = 85
    rOut.EntireColumn.WrapText = True
    Dim y As Long
    Dim u As Long
    For y = 1 To UBound(arr, 1)
        brr = Split(arr(y, 1), Chr(10))
        u = rOut.Parent.Cells(Rows.Count, x).End(xlUp).Row + 1
        u = Application.Max(Range(RANGE_OUT).Row, u)
        If UBound(brr) < 0 Then
            ReDim brr(1 To 1)
            brr(1) = " "
        End If
        rOut.Parent.Cells(u, x).Resize(UBound(brr) + 1, 1) = Application.Transpose(brr)
        With rOut.Parent.Cells(u, 1)
            .Font.Bold = True
            .HorizontalAlignment = xlCenter
        End With
    Next
    u = rOut.Parent.Cells(Rows.Count, x).End(xlUp).Row + 1
    rOut.Parent.PageSetup.PrintArea = Cells(1, 1).Resize(u).Address
End Sub
 
Спасибо, идею вставки в объединенные ячейки диапазона A:J а затем выравнивание по высоте - я забросил - слишком сложно
Изменено: Тимофеев - 27.04.2021 12:18:59
 
Цитата
Тимофеев написал:
я забросил - слишком сложно
Всё правильно. Лень - это энергосберегающий природный механизм ставить под сомнение необходимость выполнения чего-либо )
Страницы: 1
Наверх