0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 16
|
|
1 | |
Выравнивание высоты объединённых ячеек Excel по их содержимому. AutoFit для объединённых ячеек Excel.19.12.2011, 00:26. Показов 23781. Ответов 6
Метки autofit, excel, ms excel, vba, выравнивание по высоте, выравнивание по ширине, высота ячейки, объединённые ячейки, подбор высоты, подбор ширины, подгон высоты, подгон размера, подгон ширины, размер ячейки, ячейка, ячейки (Все метки)
В ячейку вставляется очень длинный текст, который при печати просто не виден. Нужно, чтобы продолжение текста переносилось в сторку ниже.
Пишу на Delphi.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
19.12.2011, 00:26 | |
Ответы с готовыми решениями:
6
Автоподбор ширины и высоты ячеек Excel
Excel 2010. Цвет заливки ячеек не переносится в Excel 2003 |
13082 / 5867 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||||||||||||
19.12.2011, 04:05 | 2 | |||||||||||||||
![]() Решение
Для такой ячейки надо выставить свойство WrapText := True.
4
|
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 16
|
|
19.12.2011, 13:11 [ТС] | 3 |
Спасибо большое, буду пытаться )))
Добавлено через 1 час 11 минут Все хорошо, но возникает проблема: AutoFit не работает с объединенными ячейками, а у меня именно такие.
0
|
13082 / 5867 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||
20.12.2011, 21:20 | 4 | |||||
Если ячейки объединены по нескольким строкам, то тогда неизвестно для каких из этих строк следует подгонять высоту. Ведь это можно сделать разными способами, изменяя высоту той или иной строки, в пределах объединения. Поэтому метод AutoFit не выполняет изменений для объединённых ячеек.
Такую задачу можно решать по-разному в зависимости от особенностей расположения данных на листе. Например, можно принять такое решение: в случае обнаружения объединения ячеек будем подгонять высоту только верхней строки, входящей в объединение. При этом, изменять высоту, если потребуется, будем только в сторону увеличения. Уменьшать высоту не будем, чтобы не нарушить соотношения по уже сделанным ранее объединениям. По этому условию в VBA у меня получился такой код:
--- Идея этого алгоритма такая: - Замеряем размеры объединённой ячейки. - Затем, разъединяем диапазон. При этом, весь текст окажется в левой верхней ячейке диапазона объединения. - Задаём ширину левой верхней ячейки равной ширине исходного объединённого диапазона. - Выполняем для левой верхней ячейки подгон высоты. - Затем, сравниваем полученную высоту с исходной высотой всего объединённого диапазона. И если оказалось, что полученная высота больше исходной, тогда на соответствующую величину увеличиваем высоту верхней строки диапазона. - Вновь объединяем все нужные ячейки. --- Книга MS Excel с этим кодом приложена к сообщению.
1
|
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 16
|
|
20.12.2011, 21:32 [ТС] | 5 |
0
|
13082 / 5867 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||||||||||||||||||||||||||||||||
21.12.2011, 16:41 | 6 | |||||||||||||||||||||||||||||||||||
![]() Решение
Сделал перевод для Delphi.
Там в коде ещё надо подправить одну строчку. Заменить:
--- Окончательный код VBA:
3
|
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 16
|
|||||||
21.12.2011, 18:30 [ТС] | 7 | ||||||
Спасибо Вам огромное, сама бы я никогда до этого не додумалась )) Вы меня просто спасли ))
0
|
21.12.2011, 18:30 | |
Помогаю со студенческими работами здесь
7
Палитра для заливки ячеек Excel 2003 Макрос для Excel - изменение ячеек по шаблону Указать тип ячеек для экспорта в Excel Выполнение макроса для всех ячеек столбца Excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |