Страницы: 1
RSS
Автоматическая подгонка высоты строк
 
В ячейку вставляется различный объём текста. Какой опцией можно установить, чтоб при большом тексте высота увеличивалась, а если текст меньше уменьшалась и наоборот.
 
при автопотборе ширины ячейка остаётся без изменения, а текст уменьшается Если автподбор высоты строк то она увеличивается, но при меньшем тексте не снижается?
 
К сожалению такой умной встроенной опции в Ексель не предусмотрено.
 
а макроса по автоматическому изменению высоты строк имеется
 
{quote}{login=za-vod}{date=08.09.2010 10:44}{thema=}{post}а макроса по автоматическому изменению высоты строк имеется{/post}{/quote}  
 
У меня точно нет!  
Предпочитаю сначала отработать с данными, а потом в ручную чёхом с форматированием во всех ячейках. Но может у кого и завалялся :)
 
Оказывается в Экселе, чтобы выравнивать по высоте надо выравнивать по горизотали по ширине (при этом по вертикали по значению)
 
Вопрос в ручную вводишь регулирует (изменяется автоматически высота строки), а формулой текст вставляешь ячейка Эксель не реагирует Ничего не понятно)  
Как же сделать чтобы ячейка автоматически реагировала на автоматически вставляемый текст
 
Что, инопланетяне, задача не решаема
 
Я в VBA ноль, но первое что пришло  голову, посмотрите...  
Естественно специалисты смогут сделать в два счёта, но просите помощи уже наверное завтра.
 
{quote}{login=za-vod}{date=08.09.2010 11:10}{thema=}{post}Что, инопланетяне,задача не решаема{/post}{/quote}Инопланетяне как раз сюда и заходят за помощью, многие потом приживаются :)  
 
Пробуйте для формул в ячейках B2,C3, текстовый результат которых нужно выровнять по высоте. Код модуля листа:  
 
Private Sub Worksheet_Calculate()  
 Application.ScreenUpdating = False  
 With Range("B2,C3")  
   .WrapText = True  
   .HorizontalAlignment = xlFill  
   .HorizontalAlignment = xlGeneral  
 End With  
 Application.ScreenUpdating = True  
End Sub
 
часто надо вывести несколько столбиков с минимумом оформления, но с большим объемом информации  в ячейке или непредсказуемый перечень столбцов. Возникают проблемы переноса при печати. Для их решения в дополнительном столбце(в данном случае в д1 формирую закон печати,размножаю его по столбцу, в а1 указываю номер этого столбца и вызываю стандартный макрос м11. Получаю c:\otchet00.doc, открываю и печатаю с автоподгонкой по ширине и по страницам. Если проблемы -перехожу на альбомную или уменьшаю шрифт
 
{quote}{login=:)}{date=09.09.2010 12:43}{thema=}{post}{quote}{login=za-vod}{date=08.09.2010 11:10}{thema=}{post}Что, инопланетяне,задача не решаема{/post}{/quote}Инопланетяне как раз сюда и заходят за помощью, многие потом приживаются :)  
 
Пробуйте для формул в ячейках B2,C3, текстовый результат которых нужно выровнять по высоте. Код модуля листа:  
 
Private Sub Worksheet_Calculate()  
 Application.ScreenUpdating = False  
 With Range("B2,C3")  
   .WrapText = True  
   .HorizontalAlignment = xlFill  
   .HorizontalAlignment = xlGeneral  
 End With  
 Application.ScreenUpdating = True  
End Sub{/post}{/quote}  
 
Или что то неправильно делаю или что то не понимаю, но почему то макрос вставленные по формуле в указанные ячейки значения автоматически не регулирует их высоту.
 
Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Range("a1").Precedents, Target) Is Nothing Then Rows("1:1").EntireRow.AutoFit  
End Sub  
Макрос работает отлично. Сделано качественно. Однако попытки распространить макрос на другие ячейки никчему не привели. Уважаемый форумчяне! Может ли работать данный макрос для диапазона ячеек(нескольких строк; нескольких ячеек и т.п.)
 
А Вы бы, za-vod сразу почитали правила, выложили бы пример. Давно бы ответ был.  
А то, вместо конструктива, давай всех на баррикады звать.
Я сам - дурнее всякого примера! ...
 
KuklP! вообщем, допустим а1 =Лист2!A1; а2 =Лист2!A2....т.п. и сответственно а1,а2....т.п. автоматически изменялись.  
С уважением,za-vod.
 
{quote}{login=za-vod}{date=08.09.2010 11:10}{thema=}{post}Что, инопланетяне, задача не решаема{/post}{/quote}  
Бился с этой задачей только через OLE Automation из Delphi.  
То есть имеем строку объединённых ячеек по ширине страницы (чтобы текст был по ширине страницы), нужно вставить в них текст и выровнять высоту ячейки по высоте текста. Для одной ячейки - легко, для диапазона - никак. Пробовал уже вставлять не в ячейки, а создавать TextBox, но и его никак не выровнять по высоте текста. Только что решил, хоть и чеоез гланды, но работает :)  
Если всё работает для одной ячейки, то берём пустую ячейку рядом, правее границы страницы, делаем её ширину равной общей ширине целевых объединённых ячеек, вставляем наш текст, ровняем как нужно, запоминаем её высоту, удаляем текст, восстанавливаем прежнюю ширину, вставляем текст в целевые объединённые ячейки и устанавливаем запомненное значение высоты. Уф! Два дня бился :)
 
ik2532, почему бы не показать народу результат Ваших двухдневных мучений?
 
А тут не оно? http://www.planetaexcel.ru/forum.php/?thread_id=19253
 
{quote}{login=vikttur}{date=19.10.2010 08:55}{thema=}{post}ik2532, почему бы не показать народу результат Ваших двухдневных мучений?{/post}{/quote}  
 
Так я, вроде, всё ясно рассказал. Да и зачем кому это в Дельфийской транскрипции, к тому же сырое? Впрочем, см. файл.
 
{quote}{login=Казанский}{date=19.10.2010 10:44}{thema=}{post}А тут не оно? http://www.planetaexcel.ru/forum.php/?thread_id=19253{/post}{/quote}  
Спасибо, не видел. Открыл, посмотрел, но сходу въехать не могу - у меня от VBAшного синтаксиса умопомрачение наступает :) На досуге поразбираюсь... Но если сходу в двух словах сможете прокомментировать, что там происходит, буду благодарен.
 
Вроде более-менее понял суть. Практически то же самое, только я взял новую ячейку сбоку, а тут берут первую ячейку из объединённых, сначала отменяя объединение, форматируют текст, и потом, узнав нужную высоту, объединяют ячейки обратно и выставляют нужную высоту.
 
Я два дня искала этот пост :)  
Казанский, спасибо!!! :))
Страницы: 1
Читают тему
Наверх