Страницы: 1
RSS
Подгонка размера ячейки в зависимости от текста в ней
 
Печатаю таблицу каждый месяц, бывает что много текста в одной ячейки. Приходиться постоянно вручную регулировать высоту ячейки, в зависимости от кол-ва содержимого в ней. Нельзя ли где то в свойствах поставить что либо, чтобы ширина столбца оставалась прежней а при переносе слов ячейка автоматически расширялась по высоте, как в ворде. Только, если это возможно, то не програмным кодом. Нет так нет. :(
 
Либо кодом, либо дабл клик на нижней границе строки (для больших текстов в ячейке не всегда корректно работает)  
А почему такое неприятие к коду? Стоит высокий уровень безопасности и боимся макровирусов?
 
{quote}{login=Вячеслав}{date=23.09.2008 11:08}{thema=Подгонка размера ячейки в зависимости от текста в ней}{post}Печатаю таблицу каждый месяц, бывает что много текста в одной ячейки. Приходиться постоянно вручную регулировать высоту ячейки, в зависимости от кол-ва содержимого в ней. Нельзя ли где то в свойствах поставить что либо, чтобы ширина столбца оставалась прежней а при переносе слов ячейка автоматически расширялась по высоте, как в ворде. Только, если это возможно, то не програмным кодом. Нет так нет. :({/post}{/quote}  
 
Если я правильно понял, то так:  
Выделяешь столбец, куда будешь заносить информацию, щелкаешь правой клавишей мыши и выбираешь формат ячеек. Далее на закладке "Выравнивание" ставишь галочку напротив "переносить по словам".
 
На всем листе подобрать ширину столбца или высоту строки по содержимому можно так.  
Выделяем весь лист (щелкаем в левую верхнюю клеточку на пересечении номеров строк и столбцов), ставим галку в _Формат ячеек_Выравнивание_Переносить по словам, дальше _Формат_Столбец_Автоподбор ширины или _Формат_Строка_Автоподбор высоты.  
Лист для печати придется подгонять вручную.  
С уважением, лександр.
 
Спасибо за советы. сейчас опробую.    
По поводу кода: данная таблица - план на месяц, печатается раз в месяц, знание VB желает оставлять лучшего.  Пишу одно приложение на VB, и понял что дается не легко, и времени мало.
 
{quote}{login=Sh_Alex}{date=23.09.2008 11:47}{thema=Подгонка размера ячейки в зависимости от текста в ней}{post}На всем листе подобрать ширину столбца или высоту строки по содержимому можно так.  
Выделяем весь лист (щелкаем в левую верхнюю клеточку на пересечении номеров строк и столбцов), ставим галку в _Формат ячеек_Выравнивание_Переносить по словам, дальше _Формат_Столбец_Автоподбор ширины или _Формат_Строка_Автоподбор высоты.  
Лист для печати придется подгонять вручную.  
С уважением, лександр.{/post}{/quote}  
 
Я из 1с "выгружаю" таблицу с данными в Excel, при выполнении рекомендуемых Вами команд, часть текста "теряется" - его становится не видно и в результате все равно "в ручную" приходится регулировать высоту каждой строки. Есть ли команда, чтобы высота строки регулировалась по тексту, содержащемуся в данной ячейке и текст был виден полностью?
 
у вас ячейки объединенные?  
так и пишите.  
люди тратят время, ломают голову, а потом "появляются нюансы".  
 
для объединенных ячеек ПРОСТОГО способа автоподбора высоты по содержимому нет.  
на форуме была тема, был макрос.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
так?
 
{quote}{login=Диана}{date=25.05.2011 02:59}{thema=}{post}так?{/post}{/quote} не забыть повесить макрос RunVisota на событие изменения листа/диапазона ячеек :)
 
Sub Auto_Size()  
   Dim i As Integer  
     
   On Error GoTo err:  
   Application.ScreenUpdating = False  
   Application.DisplayAlerts = False  
 
   For i = 5 To 145 Step 2  
       Rows(i & ":" & i + 1).RowHeight = MyRowHeight(Range(Cells(i, 27), Cells(i + 1, 27)))  
   Next  
   ActiveSheet.PageSetup.PrintArea = "$A$2:$AA$151"  
 
err:  
MsgBox i  
Resume Next  
End Sub  
 
Function MyRowHeight(ByVal MyRange As Range) As Integer  
Const NumCell As Long = 65000 'Номер строки для временной ячейки  
   Cells(NumCell, 27).Value = MyRange.Value  
   Cells(NumCell, 27).WrapText = True  
   MyRowHeight = Rows(NumCell).RowHeight / MyRange.Rows.Count  
   If MyRowHeight <= 27 Then MyRowHeight = 27  
   Cells(NumCell, 27).Clear  
End Function
Страницы: 1
Наверх