Страницы: 1
RSS
Автоподбор высоты строки в объединенных ячейках
 
Здравствуйте, подскажите, пожалуйста, как сделать автоматически подбор высоты строки в объединенных ячейках. Читала про то, что можно не объединять, просто сделать выравнивание по центру выделения, это не подходит, вид отчета сразу не привлекательным становится. Может есть макрос для этого?
 
,https://excel2.ru/articles/avtopodbor-v-ms-excel-vysoty-stroki-po-soderzhimomu-pri-obedinenii-yachee...
2 вар например
Изменено: Mershik - 06.12.2021 14:10:37
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, в отчете куча разных ячеек, которые автоматически должны подбираться по высоте, так не получится((
Изменено: LFOsipova - 06.12.2021 14:19:31
 
ну покажите часть ваших ячеек в исходном виде и рядом или на другом листе каким вы видите результат, потому что я вот сделал но уверен вам не подойджет, но есть о чем подумать, удачи
Код
Sub mrshkei()
Dim cell As Range, i As Long, lr As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr
    If Cells(i, 1) <> "" Then
        x = Cells(i, 1).MergeArea.Rows.Count
        Cells(i, 1).Offset(0, 666) = Cells(i, 1)
            With Cells(i, 1).Offset(0, 666)
                .HorizontalAlignment = xlGeneral
                .VerticalAlignment = xlBottom
                .WrapText = True
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
            xxx = Columns(1).ColumnWidth
            Columns(666 + 1).ColumnWidth = xxx
            Rows(i & ":" & i).EntireRow.AutoFit
            Rows(i & ":" & i + x - 1).RowHeight = (.RowHeight / x) + 0.5 * x
            Cells(i, 1).Offset(0, 666) = ClearContents
            i = i + x
            End With
    End If
Next i
End Sub
Изменено: Mershik - 06.12.2021 14:41:09
Не бойтесь совершенства. Вам его не достичь.
 
В этом файле есть страница - ИОМ, там автоматизированный отчет с формулами из соседних страниц. Вот надо чтобы ячейки на всей странице ИОМ автоматически увеличивались по высоте согласно данным, которые в них формируются по формулам.
 
LFOsipova, добрый вечер!
Несколько лет назад нашел способ на этом же сайте (к сожалению, не сохранил ссылку, но способ рабочий вполне) подобную задачу удалось решить так:
1. Допустим, объединенные в столбцах 1 и 2
2. Текст копируем в столбец 3 (сохраняем значения, не формулы)
4. Столбец 3 по ширине выставляем таким же как столбцы 1 и 2 по ширине вместе взятые
5. Вставляем текст в столбец 1
6. Столбец 3 EntireRow.AutoFit
7. Запоминаем действия, записываем макрорекордером, и заключаем это все в цикл (по всем строкам таблицы)
8. P.S. Посмотрел файл... Задача гораздо шире... Высоту вручную проще подобрать, либо специальную программу для всего этого нагромождения нужно делать...
 
все можно было бы сделать довольно легко если бы не конструкции как в строках 123-125
это тоже можно сделать, но над этим нужно будет посидеть
но сидеть ни за что - не охота)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, а если убрать эти конструкции? как сделать, подскажите, пожалуйста, переделаю их тогда иначе.... или цена вопроса?

_Igor_61, Хочется автоматизировать процесс, потому что надо сделать построчно на каждого потом отдельный файл, а таких нужно будет в итоге файлов 6500 практически, а значения разные, поэтому и пытаюсь автоматизировать как могу. Хотя в XL методом научного тыка только разбираюсь и интернет в помощь)
 
Есть готовый только в надстройке, по всем листам и в области печати, игнор скрытых строк и столбцов.
Активная кнопка автовысота.
Страницы: 1
Наверх