У меня есть ячейка с обернутым текстовым содержимым в Excel, и я хочу отформатировать ячейку так, чтобы ее высота соответствовала содержанию, которое может занимать несколько строк. Как я могу добиться этого поведения?
У меня есть ячейка с обернутым текстовым содержимым в Excel, и я хочу отформатировать ячейку так, чтобы ее высота соответствовала содержанию, которое может занимать несколько строк. Как я могу добиться этого поведения?
Ответы:
С http://support.microsoft.com/kb/149663
Чтобы настроить высоту строки так, чтобы она помещалась по всему тексту в ячейке, выполните следующие действия.
Выберите строку.
В Microsoft Office Excel 2003 и более ранних версиях Excel укажите «Строка» в меню «Формат», а затем нажмите «Автоподбор».
В Microsoft Office Excel 2007 перейдите на вкладку «Главная», нажмите «Формат» в группе «Ячейки», а затем нажмите «Автоматическая установка высоты строки».
Также работает, когда все строки выбраны
Пытаться
Выберите столбец -> столбец правой кнопкой мыши -> Формат ячеек -> вкладка Выравнивание -> Перенос текста
Wrap Text
выключите и снова включите, Excel изменит размер строки, чтобы соответствовать самой высокой строке. Не подходит, если высота строк изменяется динамически, но если вы имеете дело со статическим текстом, все должно быть в порядке.
Обратите внимание, что автоподбор не работает для объединенных ячеек. Вы должны сделать это вручную.
Смотрите этот ответ Microsoft:
Если это не происходит автоматически, поместите курсор на маленькую строку между номерами строк (например, между 1 и 2) и дважды щелкните мышью, это изменит размер строки (прямо над маленькой строкой, в примере: 1) так что все видно (с вертикальной стороны).
Решением VBA является использование следующего:
Call Application.ActiveCell.AutoFit
Единственный способ заставить его работать должным образом - выделить весь лист с помощью CTRL-A, отменить щелчок по кнопке «Обтекание текстом» на панели инструментов, а затем повторно выбрать его. Другие настройки не меняются, но каждая строка теперь является «правильной» высотой для своего содержимого.
Я создал следующий код VB, чтобы изменить размер строки заголовка, когда ячейка в диапазоне (B2: B1500), потому что значения дат выше 28.12.2014 заставят заголовок отображать предупреждение о том, что эти даты в расписании перейдут в 1-я неделя 2015 года:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an Action when they are changed.
Set KeyCells = Range("B2:B1500")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Change the height of the header row when one of the defined cdlls is changed
Rows("1:1").EntireRow.AutoFit
End If
End Sub