Страницы: 1
RSS
Массовое изменение высоты строки у объединенных ячеек
 
Здравствуйте, подскажите, пожалуйста, имеются ячейки идущие в столбик, объединенные в хаотичном порядке, хотелось бы, чтобы эти ячейки стали одинаковые по размеру, например 1 ячейка = 100, 2 ячейки = 50, 3 ячейки = 33,3, 4 ячейки = 25 и т.д. Пример прикладываю, оранжевым выделил исходное состояние, зеленым как хотелось бы получить. Возможно ли это как-нибудь сделать?
Скриншот - https://pp.vk.me/c633725/v633725965/222f1/e8JBNLvOMws.jpg
 
Выделите все нужные строки целиком и мышкой подвиньте границу любой строки на заголовках строк слева.
Изменено: kuklp - 03.04.2016 23:02:49
Я сам - дурнее всякого примера! ...
 
kuklp, Да, сейчас я так и делаю, сначала выделяю все ячейки с 4 строками - увеличиваю, далее с 3 строками - увеличиваю и т.д. Но проблема в том, что этих ячеек несколько тысяч и часто пропускаю где-то или ошибаюсь, приходится много времени тратить и просматривать заново, аж в глазах рябить начинает)
 
Так кто мешает один раз записать это макрорекордером?
Я сам - дурнее всякого примера! ...
 
kuklp, Впервые за него услышал), почитал, попробовал, но мне, кажется, что через него не получится? Включил запись макроса, выделил первые 100 ячеек имеющих 1 строчку установил размер 100, остановил запись. Далее выделил все ячейки включил макрос, но он мне увеличил только эти же первые 100 ячеек, не трогая остальные)
Или вы это и имели ввиду? Так у меня каждый раз разный набор объединенных ячеек. Если бы был одинаковый, я бы просто открывал старый док и очищал его. Или я неправильно понял?)
 
Код
Public Sub www()
    Dim c As Range
    For Each c In ActiveSheet.UsedRange.Columns(1).Cells
        c.MergeArea.RowHeight = 100 \ c.MergeArea.Count
    Next
End Sub
Изменено: kuklp - 03.04.2016 23:49:34
Я сам - дурнее всякого примера! ...
 
kuklp, Я так понял данный макрос просто делает все строки = 100? Но это я могу и просто вручную сделать обвести все строчки и установить.)
Мне бы, чтобы там где 1 строчка на 1 ячейку стало = 100, где 2 строки на 1 ячейку = 50, 3 строки на 1 ячейку = 33,3 и т.д.
В общем, чтобы все ячейки выглядели одинаковыми по размеру.
 
Снова потребовалась данная процедура, так что возвращаюсь к вопросу. К сожалению, я так и не понял как можно это сделать, так что требуется помощь, готов заплатить разумную цену.
Повторюсь, идут ячейки в столбик, хаотично объединены, типо такого:
https://pp.vk.me/c627223/v627223965/4aa72/IE-dc8ruZBQ.jpg
т.е. есть как и 1 ячейка, так и 2,3 и т.д. объединенные в одну. Если посмотреть высоту строки, то на 1 строчку она равняется 15, а мне надо, в зависимости от кол-ва строк, чтобы высота строки в сумме давала ~100. Т.е. если 1 строка, то высота 100, 2 строки = 50, 3 строки = 33,3, 4 строки = 25, 5 строк = 20, 6 строк = 16,7, 7 строк и больше = 15, т.е. без изменений.
Т.е. наш пример должен стать выглядеть вот так:
https://pp.vk.me/c627223/v627223965/4aa7a/-Z6xqenOdog.jpg
По хорошему хотелось бы еще, чтобы это значение суммы (100) можно было бы изменять как я пожелаю, например, 1 строчка = 200, 2 строки = 100, 3 строки = 66,7 и т.д.
 
Цитата
vladislav111 написал: так понял данный макрос просто делает все строки = 100?
вы хоть пробовали как работает этот макрос?
Цитата
vladislav111 написал: мне надо, в зависимости от кол-ва строк, чтобы высота строки в сумме давала ~100
он именно так и работает.
проверьте прежде.
 
Dima S,Блин, точно, дурная моя голова. Просто у меня это объединение стояло во 2ом столбце, а в 1ом каждая строчка отдельно была, т.к. там идет нумерация каждой строки и макрос видимо как раз ориентировался по 1ому столбцу. Спасибо большое и извините за беспокойство.
 
Так?
 
kuklp, Здравствуйте, извините за беспокойство, пожалуйста. А не могли бы вы свой макрос отредактировать немного, если это возможно, конечно. Мне надо, чтобы он от 7 строк и больше неуменьшал строку, а оставлял ее такой какая есть.
Т.е. чтобы он работал так:
1 строка - высота 100
2 строки - 50
3 строки - 33.3
4 строки - 25
5 строк - 20
6 строк 16.7
7 строк и больше оставались без изменений.
Юрий М, Да, ваш файл правильно работает, но, к сожалению, такое же замечание остается, как и у kuklp...
 
Цитата
vladislav111 написал:
к сожалению, такое же замечание остается, как и у kuklp
А что за замечание?
 
Юрий М,
Ваш файл также объединенные строки, в количестве больше 7 делает их высотой по 100, а их не надо трогать.)
Цитата
vladislav111 написал:
Т.е. чтобы он работал так:
1 строка - высота 100
2 строки - 50
3 строки - 33.3
4 строки - 25
5 строк - 20
6 строк 16.7
7 строк и больше оставались без изменений.
 
Добавил одно условие к коду Юрия М (извиняюсь, что влез без спроса в ваш код)
Код
Sub Macro1()
Dim x As Long, i As Long, CounterRows As Long, iHeight As Double
    x = Application.InputBox(Prompt:="Укажите высоту строки (0...409).", Title:="Выбираем высоту строк...", Type:=1)
    If x < 0 Or x > 409 Then
        MsgBox "Высота строки не может быть меньше 0 и больше 409. Повторите ввод", 48, "Ошибка!"
        Exit Sub
    End If
    For i = 1 To 16
        If Cells(i, 1).MergeCells And Cells(i, 1).MergeArea.Rows.Count <= 7 Then 'тут
            r = Cells(i, 1).MergeArea.Rows.Count
            iHeight = x / Cells(i, 1).MergeArea.Rows.Count
            Rows(i).RowHeight = iHeight
        ElseIf Not Cells(i, 1).MergeCells Then 'и тут
            Rows(i).RowHeight = x
        End If
    Next
End Sub
Изменено: heso - 21.09.2016 07:16:05
 
heso, Отлично, спасибо большое!)
Страницы: 1
Читают тему
Наверх