GIG_ant Пользователь Сообщений: 3102 |
Добрый день, уважаемые ! |
vikttur Пользователь Сообщений: 47199 |
Попробуйте не автоподбор, а ширину строки (не более 409). |
GIG_ant Пользователь Сообщений: 3102 |
{quote}{login=vikttur}{date=01.02.2011 03:37}{thema=}{post}Попробуйте не автоподбор, а ширину строки (не более 409).{/post}{/quote} не очень понял, можно поподробней плз |
vikttur Пользователь Сообщений: 47199 |
Автоподбор же как-то хотели сделать? |
принцип такой: Columns(iLastColumn).ColumnWidth = mrg |
|
GIG_ant Пользователь Сообщений: 3102 |
{quote}{login=vikttur}{date=01.02.2011 03:47}{thema=}{post}Автоподбор же как-то хотели сделать? |
vikttur Пользователь Сообщений: 47199 |
Пожалейте зверька |
GIG_ant Пользователь Сообщений: 3102 |
То vikttur: Или у меня сегодня день неудачный, или я все равно не пойму каким макаром вы предлагаете подобрать нужную высоту строки. То Noname (который прислал макрос) : если возможно вкратце подскажите как мне этот макрос приделать под мой пример, а то я попробовал а он виснет (. |
vikttur Пользователь Сообщений: 47199 |
Я и не говорил подбирать. Предложил вариант (корявый, не спорю) — для всех выставить минимально возможную для отражения всего текста максимальной длины. |
или так: попробуйте изменить ячейку(добавить пробел, например) ps 88666 |
|
GIG_ant Пользователь Сообщений: 3102 |
{quote}{login=Казанский}{date=01.02.2011 04:02}{thema=}{post}Ключевое слово — автоБодбор А я как правильный искал автоПодбор! Всем остальным спасибо за участие. |
vikttur Пользователь Сообщений: 47199 |
Ух ты! Это вообще красота! |
даже автоподбор не любит Alt+Enter |
|
vikttur Пользователь Сообщений: 47199 |
{quote}{login=}{date=01.02.2011 04:10}{thema=}{post}или так: попробуйте изменить ячейку(добавить пробел, например){/post}{/quote} |
nerv Пользователь Сообщений: 3071 |
Как установить: Скачать, распаковать архив. Открыть Excel, в меню «Сервис», выбрать пункт Надстройки, нажать кнопку обзор, указать путь к файлу. Закрыть Excel. После правильной установки надстройки на панели инструментов, должна появиться кнопка «Автоподбор высоты строк». Как пользоваться: так же, как и обычным подбором высоты строк. Цель надстройки: забыть о том, что существует какая-то разница между подбором строк с объединенными или обычными ячейками. Тем, кто будет пользоваться: в случае обнаружения ошибки, просьба написать по адресу: nerv-net@yandex.ru. Так же принимаются замечания и предложения : ) |
VovaK Пользователь Сообщений: 1716 |
|
nerv Пользователь Сообщений: 3071 |
Большое спасибо за пример! Такой случай я не рассматривал, хотя в голове уже вертится приблизительный алгоритм его решения. Посмотрим, удастся ли его воплотить : ) По вашему примеру: вариант выложенный мной (на данный момент) будет работать если скрыть любую/любые строки , не относящиеся к верхней левой ячейке диапазона объединенной ячейки (т.е. H9). |
VovaK Пользователь Сообщений: 1716 |
Nerv, Не в обиду. Вы выложили недоработанную надстройку и закрыли ее от просмотра. Цель? Я не осуждаю, но на этом форуме мы у друг друга учимся, а так — во что форум превратится? Не спортивно. GiGant, посмотрите пожалуйста прилагаемый файл. Немножко попробовал варианты, в общем случае не работает только, если в строке есть индивидуальный формат шрифта в тексте. В остальном повторяет стандартный. |
GIG_ant Пользователь Сообщений: 3102 |
{quote}{login=VovaK}{date=28.07.2011 01:03}{thema=}{post}Nerv, Спасибо за беспокойство. Дело в том что мне помогли предыдущие посты, при этом взял на заметку ваш вариант. Не пойму почему тема всплыла, см . дату первого поста )) |
nerv Пользователь Сообщений: 3071 |
to GIG_ant: «Не пойму почему тема всплыла» to VovaK: «Вы выложили недоработанную надстройку и закрыли ее от просмотра. Цель?» Постарался учесть замечания в примере от VovaK. |
> Автоподбор высоты. Версия 2.5 beta высота подбирается не совсем точно… http://excelvba.ru/XL_Files/Sample__30-07-2011__15-31-17.zip Но, полагаю, в общем случае автоподбор высоты таких ячеек — задача весьма нетривиальная, и алгоритм будет достаточно сложным. PS: Я тоже когда-то пытался сделать подобный макрос: http://excelvba.ru/code/AutoFitMergedCells |
|
nerv Пользователь Сообщений: 3071 |
Позвольте поблагодарить Вас за пример : ) Пытаясь идти по пути наименьшего сопротивления, могу предложить следующий вариант решения: собрать адреса с ячейками, в кот. объединены строки в массив и пройти по ним еще раз) На Вашем примере: На данный момент это все делается руками, но можно и автоматизировать : ) |
nerv Пользователь Сообщений: 3071 |
Применил немного другой алгоритм, в отличии от описанного выше. Попытался учесть замечания от EducatedFool. |
nerv Пользователь Сообщений: 3071 |
эм, ну как то так… Автоподбор высоты. Версия 2.7 |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
nerv, это Вы с кем разговариваете?:-) Я сам — дурнее всякого примера! … |
nerv Пользователь Сообщений: 3071 |
KukLP, я все пытаюсь победить автоподбор. Пока ничья) |
Начальника Пользователь Сообщений: 1 |
макрос закрыл, но могу поделиться! |
nerv Пользователь Сообщений: 3071 |
|
гость Гость |
#30 05.08.2011 11:34:17 {quote}{login=nerv}{date=01.08.2011 09:22}{thema=}{post}KukLP, я все пытаюсь победить автоподбор. Пока ничья) |
Хитрости »
10 Август 2016 35694 просмотров
Подбор высоты строки/ширины столбца объединенной ячейки
Для начала немного теории. Если в ячейках листа Excel записан некий длинный текст, то обычно устанавливают перенос на строки(вкладка Главная -группа Выравнивание —Перенос текста), чтобы текст не растягивался на весь экран, а умещался в ячейке. При этом высота ячейки тоже должна измениться, чтобы отобразить все содержимое. Если речь идет всего об одной простой ячейке — проблем не возникает. Обычно, чтобы установить высоту строки на основании содержимого ячейки, достаточно навести курсор мыши в заголовке строк на границу строки(курсор приобретет вид направленных в разные стороны стрелок — ) и дважды быстро щелкнуть левой кнопкой мыши. Тоже самое можно сделать и для ширины столбцов.
Но с объединенными ячейками такой фокус не прокатывает — ширина и высота для этих ячеек так не подбирается, сколько ни щелкай и приходится вручную подгонять каждую, чтобы текст ячейки отображался полностью:
Стандартными средствами такой автоподбор не сделать, но вот при помощи VBA — без проблем. Ниже приведена функция, которая поможет подобрать высоту и ширину объединенных ячеек на основании их содержимого.
'--------------------------------------------------------------------------------------- ' Procedure : RowHeightForContent ' Author : The_Prist(Щербаков Дмитрий) ' http://www.excel-vba.ru ' Purpose : Функция подбирает высоту строки/ширину столбца объединенных ячеек по содержимому '--------------------------------------------------------------------------------------- Function RowColHeightForContent(rc As Range, Optional bRowHeight As Boolean = True) 'rc - ячейка, высоту строки или ширину столбца которой необходимо подобрать 'bRowHeight - True - если необходимо подобрать высоту строки ' False - если необходимо подобрать ширину столбца Dim OldR_Height As Single, OldC_Widht As Single Dim MergedR_Height As Single, MergedC_Widht As Single Dim CurrCell As Range Dim ih As Integer Dim iw As Integer Dim NewR_Height As Single, NewC_Widht As Single Dim ActiveCellHeight As Single If rc.MergeCells Then With rc.MergeArea 'если ячейка объединена 'запоминаем кол-во столбцов iw = .Columns(.Columns.Count).Column - rc.Column + 1 'запоминаем кол-во строк. ih = .Rows(.Rows.Count).Row - rc.Row + 1 'Определяем высоту и ширину объединения ячеек MergedR_Height = 0 For Each CurrCell In .Rows MergedR_Height = CurrCell.RowHeight + MergedR_Height Next MergedC_Widht = 0 For Each CurrCell In .Columns MergedC_Widht = CurrCell.ColumnWidth + MergedC_Widht Next 'запоминаем высоту и ширину первой ячейки из объединенных OldR_Height = .Cells(1, 1).RowHeight OldC_Widht = .Cells(1, 1).ColumnWidth 'отменяем объединение ячеек .MergeCells = False 'назначаем новую высоту и ширину для первой ячейки .Cells(1).RowHeight = MergedR_Height .Cells(1, 1).EntireColumn.ColumnWidth = MergedC_Widht 'если необходимо изменить высоту строк If bRowHeight Then '.WrapText = True 'раскомментировать, если необходимо принудительно выставлять перенос текста .EntireRow.AutoFit NewR_Height = .Cells(1).RowHeight 'запоминаем высоту строки .MergeCells = True If OldR_Height < (NewR_Height / ih) Then .RowHeight = NewR_Height / ih Else .RowHeight = OldR_Height End If 'возвращаем ширину столбца первой ячейки .Cells(1, 1).EntireColumn.ColumnWidth = OldC_Widht Else 'если необходимо изменить ширину столбца .EntireColumn.AutoFit NewC_Widht = .Cells(1).EntireColumn.ColumnWidth 'запоминаем ширину столбца .MergeCells = True If OldC_Widht < (NewC_Widht / iw) Then .ColumnWidth = NewC_Widht / iw Else .ColumnWidth = OldC_Widht End If 'возвращаем высоту строки первой ячейки .Cells(1, 1).RowHeight = OldR_Height End If End With End If End Function
Пара замечаний:
- т.к. нельзя выставить и автоширину и автовысоту — то функция подбирает либо высоту, либо ширину, что логично
- чтобы подбор по высоте ячеек сработал, для ячейки должен быть выставлен перенос строк(вкладка Главная -группа Выравнивание —Перенос текста). Если ячеек много и выставлять вручную лень — можно просто убрать апостроф перед точкой в строке:’.WrapText = True ‘раскомментировать, если необходимо принудительно выставлять перенос текстатогда код сам проставит переносы. Но тут следует учитывать, что в данном случае перенос будет выставлен для всех ячеек, что не всегда отвечает условиям
- функция подбирает высоту и ширину исключительно для объединенных ячеек. Если ячейка не объединена — код оставит её без изменений
Теперь о том, как это работает и как применять. Для начала необходимо приведенный выше код функции вставить в стандартный модуль. Сама по себе функция работать не будет — её надо вызывать из другого кода, который определяет какие ячейки обрабатывать. В качестве такого кода я предлагаю следующий:
Sub ChangeRowColHeight() Dim rc As Range Dim bRow As Boolean bRow = (MsgBox("Изменять высоту строк?", vbQuestion + vbYesNo, "www.excel-vba.ru") = vbYes) 'bRow = True: для изменения высоты строк 'bRow = False: для изменения ширины столбцов Application.ScreenUpdating = False For Each rc In Selection RowColHeightForContent rc, bRow Next Application.ScreenUpdating = True End Sub
Этот код также необходимо вставить в стандартный модуль. Теперь его можно будет вызвать из этой книги, нажатием клавиш Alt+F8 и выбрав ChangeRowColHeight, или создав на листе кнопку и назначив ей макрос. После этого достаточно будет выделить диапазон ячеек, среди которых есть объединенные и вызвать макрос ChangeRowColHeight. Для всех объединенных ячеек в выделенном диапазоне будет подобрана высота или ширина.
Чтобы было нагляднее — я приложил пример, в котором помимо самих кодов есть вырезка из стандартной накладной. Именно в таких документах наиболее часто встречаются подобные казусы и необходимость подбирать высоту и ширину объединенных ячеек.
Скачать пример:
Tips_Macro_HeightWidthInMergeCell.xls (64,0 KiB, 3 476 скачиваний)
Если подобную операцию приходится производить постоянно — советую коды записать в надстройку: Как создать свою надстройку?. Так же можно воспользоваться уже готовым решением в составе MulTEx — Высота/Ширина объединенной ячейки.
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Наиболее быстрый способ добиться, чтобы содержимое ячеек отображалось полностью – это использовать механизм автоподбора ширины столбца/ высоты строки по содержимому.
Пусть имеется таблица с ячейками заполненными текстовыми значениями.
Автоподбор ширины столбца
Как видно из рисунка выше, текстовые значения в ячейках
А2
и
А3
отображаются не полностью, т.к. мешает текст в столбце
B
. Нам необходимо, чтобы содержимое всех ячеек в столбце
A
отображалось полностью. Для этого необходимо сделать ширину столбца
A
достаточной для отображения самого длинного текста в столбце. Делается это элементарно: подводим указатель мыши к разделу столбцов
А
и
B
(на сером заголовке столбцов), курсор примет следующий вид:
Делаем двойной клик мышкой и, Voila, ширина столбца стала достаточной для отображения значений во всех ячейках столбца (с учетом скрытых строк).
Если нужно выровнять ширину по содержимому у сразу нескольких столбцов, то делаем следующее:
- выделяем необходимые столбцы (за их серые заголовки);
- подводим курсор к любому разделу выделенных столбцов и дважды кликаем.
Альтернативный вариант:
- Выберите столбец или столбцы, ширину которых нужно изменить;
-
На вкладке
Главная
в группе
Ячейки
выберите команду
Формат
; -
В группе
Размер ячейки
выберите пункт
Автоподбор ширины столбца
.
Автоподбор высоты строки
Если ячейки содержат значения с очень большой длиной строки (например, если длина текстовой строки без переносов сравнима с шириной видимой части листа), то ширина столбца может стать слишком большой, работать с данными будет не удобно. В этом случае нужно выделить ячейки и включить опцию
Переносить по словам
через
Формат ячеек
(или через меню
).
Ширина столбца останется прежней, зато высота строки автоматически увеличится, чтобы полностью отобразить значение ячейки.
Иногда, не смотря на установленную опцию
Переносить по словам
, высоты строки не хватает, чтобы отобразить текстовую строку полностью (это могло произойти, если высота строки была уменьшена вручную). В этом случае нужно поступить также, как мы поступали в случае подбора ширины строки — дважды кликнуть на границе раздела, но теперь не столбцов, а строк:
После этого текстовое значение будет отображено в ячейке полностью:
Реальный пример
Теперь применим рассмотренный метод в реальной ситуации – отредактируем таблицу, созданную путем копирования данных из MS ACCESS. Скопируем через
Буфер обмена
какую-нибудь таблицу из MS ACCESS на лист EXCEL.
Обратите внимание, что у ячеек, в которые мы вставили значения из
Буфера обмена
, включена опция
Переносить по словам,
хотя, по умолчанию, она отключена (EXCEL сам включил ее при вставке). Кроме того, EXCEL не стал изменять ширину столбцов, установленную по умолчанию, а была изменена только высота строк, чтобы полностью отобразить все значения. Такое форматирование таблицы не всегда устраивает пользователя. Используя вставленную таблицу, решим 2 задачи.
Задача1.
Предположим, нам нужно, чтобы все значения отображались в таблице в одну строку.
Для этого:
-
выделите вставленные значения (для этого выделите любую ячейку таблицы и нажмите
CTRL+A
(выделитсятекущая область
), если таблица не содержит пустых строк и столбцов, то будут выделены все вставленные значения);
-
выключите опцию
Переносить по словам
(через меню);
- высота ячеек будет уменьшена так, чтобы отображать только одну строку, как следствие часть значений станет невидна;
-
выделите столбцы
А
,
B
и
С
за серые заголовки; -
подведите указатель мыши к разделу столбцов
А
и
B
(на сером заголовке столбцов) и дважды кликните.
Задача решена: содержимое всех ячеек полностью отображается.
Задача2.
Теперь предположим, что нам нужно, чтобы все столбцы имели определенную, заданную пользователем, ширину, а значения полностью бы отображались в ячейке. При этом высота строки должна быть минимальной.
Для этого:
-
задайте требуемую ширину столбцов
А
,
B
и
С
; -
опцию
Переносить по словам
не выключайте (включите);
-
выделите все строки, содержащие вставленные значения, или все ячейки листа (все ячейки листа можно выделить нажав кнопку
Выделить все
в левом верхнем углу листа или дважды нажав
CTRL
+
A
); - подведите указатель мыши к разделу любых двух заполненных строк (на сером заголовке столбцов) и дважды кликните.
Задача решена: содержимое всех ячеек полностью отображается.
Случай с объединенными ячейками
В случае, если две или несколько ячеек объединены в одну, то рассмотренный подход не сработает. Можно ли осуществить автоподбор высоты строки в случае объединенных ячеек? Об этом читайте в одноименной статье
Автоподбор высоты строки по содержимому при объединении ячеек
.
Изменение ширины столбца и высоты строки
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
Если вам нужно увеличить или уменьшить ширину строк и высоту столбцов в Excel, это можно сделать несколькими способами. В приведенной ниже таблице показаны минимальный, максимальный и стандартный размеры для строк и столбцов в точках.
Тип |
Минимум |
Максимум |
По умолчанию |
---|---|---|---|
Столбец |
0 (скрыто) |
255 |
8,43 |
Строка |
0 (скрыто) |
409 |
15,00 |
Примечания:
-
Если работа ведется в режиме разметки страницы (вкладка Представление, группа Представления книги, кнопка Разметка страницы), вы можете указать ширину столбца или высоту строки в дюймах, сантиметрах и миллиметрах. По умолчанию единицами измерения являются дюймы. Перейдите в раздел Файл > Параметры > Дополнительно > Отображение и выберите параметр из списка Единицы на линейке. При переключении в обычный режим, значения ширины столбцов и высоты строк будут отображаться в точках.
-
Отдельные строки и столбцы могут иметь только один параметр. Например, если для одного столбца задана ширина 25 точек, это не может быть 25 точек для одной строки и 10 для другой.
Установка заданной ширины столбца
-
Выберите столбец или столбцы, ширину которых требуется изменить.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Ширина столбца.
-
Введите значение в поле Ширина столбцов.
-
Нажмите кнопку ОК.
Совет: Чтобы быстро задать ширину одного столбца, щелкните столбец правой кнопкой мыши, выберите Ширина столбца, а затем введите требуемое значение и нажмите кнопку ОК.
-
Выберите столбец или столбцы, ширину которых требуется изменить.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Автоподбор ширины столбца.
Примечание: Чтобы быстро подобрать ширину всех столбцов листа, нажмите кнопку Выделить все и дважды щелкните любую границу между заголовками двух столбцов.
-
Выделите ячейку, которая имеет нужную ширину.
-
Нажмите сочетание клавиш CTRL+C или на вкладке Главная в группе Буфер обмена нажмите кнопку Копировать.
-
Щелкните правой кнопкой мыши ячейку в целевом столбце, наведите указатель мыши на значок над пунктом Специальная вставка, а затем нажмите кнопку Сохранить ширину столбцов оригинала
.
Значение ширины столбца по умолчанию указывает приблизительное количество символов стандартного шрифта, которое умещается в ячейке. Можно указать другое значение ширины столбца по умолчанию для листа или книги.
-
Выполните одно из указанных ниже действий.
-
Чтобы изменить ширину столбца по умолчанию для листа, щелкните ярлычок листа.
-
Чтобы изменить ширину столбца по умолчанию для всей книги, щелкните правой кнопкой мыши ярлычок какого-либо листа, а затем выберите пункт Выделить все листы в контекстное менюTE000127572.
-
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Ширина по умолчанию.
-
В поле Ширина столбца введите новое значение, а затем нажмите кнопку ОК.
Выполните одно из указанных ниже действий.
-
Чтобы изменить ширину одного столбца, перетащите правую границу его заголовка до нужной ширины.
-
Чтобы изменить ширину нескольких столбцов, выделите столбцы, ширину которых требуется изменить, а затем перетащите правую границу заголовка любого выделенного столбца.
-
Чтобы изменить ширину столбцов в соответствии с содержимым ячеек, выберите столбец или столбцы, которые требуется изменить, и дважды щелкните правую границу заголовка одного из выделенных столбцов.
-
Чтобы изменить ширину всех столбцов на листе, нажмите кнопку Выделить все, а затем перетащите правую границу заголовка любого столбца.
-
Выберите строку или строки, высоту которых требуется изменить.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Высота строки.
-
Введите значение в поле Высота строки и нажмите кнопку ОК.
-
Выберите строку или строки, высоту которых требуется изменить.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Автоподбор высоты строки.
Совет: Чтобы быстро подобрать высоту всех строк листа, нажмите кнопку Выделить все и дважды щелкните нижнюю границу заголовка любой строки.
Выполните одно из указанных ниже действий.
-
Чтобы изменить высоту одной строки, перетащите нижнюю границу заголовка строки до нужной высоты.
-
Чтобы изменить высоту нескольких строк, выберите нужные строки и перетащите нижнюю границу заголовка одной из выбранных строк.
-
Чтобы изменить высоту всех строк на листе, нажмите кнопку Выделить все, а затем перетащите нижнюю границу заголовка любой строки.
-
Чтобы изменить высоту строки в соответствии с содержимым, дважды щелкните нижнюю границу заголовка строки.
К началу страницы
Если вы предпочитаете видеть ширину столбцов и высоту строк в сантиметрах, перейдите в режим разметки страницы (вкладка Вид, группа Режимы просмотра книги, кнопка Разметка страницы). В режиме разметки страницы можно указывать ширину колонок и высоту строк в сантиметрах. По умолчанию в этом режиме единицами измерения являются дюймы, но можно также выбрать сантиметры или миллиметры.
-
В Excel 2007 нажмите кнопку Microsoft Office
> Параметры Excel> Дополнительно.
-
В Excel 2010 выберите Файл > Параметры > Дополнительно.
Установка заданной ширины столбца
-
Выберите столбец или столбцы, ширину которых требуется изменить.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Ширина столбца.
-
Введите значение в поле Ширина столбцов.
-
Выберите столбец или столбцы, ширину которых требуется изменить.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Автоподбор ширины столбца.
Совет Чтобы быстро подобрать ширину всех столбцов листа, нажмите кнопку Выделить все и дважды щелкните любую границу между заголовками двух столбцов.
-
Выделите ячейку, которая имеет нужную ширину.
-
На вкладке Главная в группе Буфер обмена нажмите кнопку Копировать и выберите нужный столбец.
-
На вкладке Главная в группе Буфер обмена щелкните стрелку под кнопкой Вставить и выберите команду Специальная вставка.
-
В разделе Вставить установите переключатель в положение ширины столбцов.
Значение ширины столбца по умолчанию указывает приблизительное количество символов стандартного шрифта, которое умещается в ячейке. Можно указать другое значение ширины столбца по умолчанию для листа или книги.
-
Выполните одно из указанных ниже действий.
-
Чтобы изменить ширину столбца по умолчанию для листа, щелкните ярлычок листа.
-
Чтобы изменить ширину столбца по умолчанию для всей книги, щелкните правой кнопкой мыши ярлычок какого-либо листа, а затем выберите пункт Выделить все листы в контекстное менюTE000127572.
-
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Ширина по умолчанию.
-
В поле Ширина столбца введите новое значение.
Совет Если требуется определить новое значение ширины столбцов по умолчанию для всех новых книг и листов, можно создать шаблон книги или листа, а затем создавать новые книги и листы на его основе. Дополнительные сведения см. в статье Сохранение книги или листа в качестве шаблона.
Выполните одно из указанных ниже действий.
-
Чтобы изменить ширину одного столбца, перетащите правую границу его заголовка до нужной ширины.
-
Чтобы изменить ширину нескольких столбцов, выделите столбцы, ширину которых требуется изменить, а затем перетащите правую границу заголовка любого выделенного столбца.
-
Чтобы изменить ширину столбцов в соответствии с содержимым ячеек, выберите столбец или столбцы, которые требуется изменить, и дважды щелкните правую границу заголовка одного из выделенных столбцов.
-
Чтобы изменить ширину всех столбцов на листе, нажмите кнопку Выделить все, а затем перетащите правую границу заголовка любого столбца.
-
Выберите строку или строки, высоту которых требуется изменить.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Высота строки.
-
Введите значение в поле Высота строки.
-
Выберите строку или строки, высоту которых требуется изменить.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
В разделе Размер ячейки выберите пункт Автоподбор высоты строки.
Совет Чтобы быстро подобрать высоту всех строк листа, нажмите кнопку Выделить все и дважды щелкните нижнюю границу заголовка любой строки.
Выполните одно из указанных ниже действий.
-
Чтобы изменить высоту одной строки, перетащите нижнюю границу заголовка строки до нужной высоты.
-
Чтобы изменить высоту нескольких строк, выберите нужные строки и перетащите нижнюю границу заголовка одной из выбранных строк.
-
Чтобы изменить высоту всех строк на листе, нажмите кнопку Выделить все, а затем перетащите нижнюю границу заголовка любой строки.
-
Чтобы изменить высоту строки в соответствии с содержимым, дважды щелкните нижнюю границу заголовка строки.
К началу страницы
См. также
Изменение ширины столбца или высоты строк (PC)
Изменение ширины столбца или высоты строк (Mac)
Изменение ширины столбца или высоты строк (веб-сайт)
Рекомендации, позволяющие избежать появления неработающих формул
Нужна дополнительная помощь?
Автоподбор высоты объединенной ячейки с помощью кода VBA Excel, когда метод AutoFit не работает. Обработка ячеек по списку адресов из массива.
Автоподбор высоты ячейки
К сожалению, в объединенных ячейках метод VBA Excel AutoFit не работает. Но есть возможность подогнать ширину или высоту такой ячейки под длину текста с помощью макроса.
Здесь мы рассмотрим макрос для автоподбора высоты ячейки, объединенной с другими по горизонтали в одной строке, которые обычно используются в заголовках электронных таблиц Excel. Для объединенной ячейки должен быть задан перенос текста по словам: Формат ячеек >> Выравнивание >> переносить текст
.
Высота ячейки будет такой, чтобы уместились все строки, на которые будет разбит контент в зависимости от ширины объединенной ячейки.
Для решения задачи по автоподбору высоты необходимо с помощью кода VBA определить:
- Длину текста (количество символов) в объединенной ячейке.
- Ширину объединенной ячейки. Длина одного символа текста со шрифтом и его размером по умолчанию приблизительно соответствует длине символа, в котором измеряется ширина ячейки.
- Размер шрифта, чтобы рассчитать коэффициент, увеличивающий или уменьшающий высоту ячейки в зависимости от его (шрифта) размера.
Макрос VBA Excel для автоподбора высоты ячейки с учетом размера используемого шрифта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub PodborVysoty() Dim myCell As Range, myLen As Integer, _ myWidth As Single, k As Single, n As Single With Selection ‘Задаем объединенной ячейке перенос текста .WrapText = True ‘Задаем объединенной ячейке такую высоту строки, ‘чтобы умещалась одна строка текста .RowHeight = ActiveCell.Font.Size * 1.3 End With myLen = Len(CStr(ActiveCell)) For Each myCell In Selection myWidth = myWidth + myCell.ColumnWidth Next n = 10 k = ActiveCell.Font.Size / n Selection.RowHeight = Selection.RowHeight * _ WorksheetFunction.RoundUp(myLen * k / myWidth, 0) End Sub |
Переменные:
- myCell — отдельная ячейка в объединенной;
- myLen — длина текста в активной ячейке;
- myWidth — ширина объединенной ячейки;
- k — коэффициент, вносящий поправку в зависимости от размера шрифта;
- n — размер шрифта по умолчанию.*
* Это не точное значение: у меня по умолчанию установлен шрифт Calibri размером 11, но точнее код работает с n = 10. Значение переменной n подбирается опытным путем, так как длина текста зависит от процентного соотношения широких и узких символов, если шрифт не моноширинный. Переменной n можно присваивать и дробные значения для более точного автоподбора высоты.
Максимальная высота строки — 409,5. Если расчетная высота объединенной ячейки окажется больше, будет сгенерирована ошибка.
Данный код VBA Excel работает с выделенной ячейкой. Вы можете задать список адресов объединенных ячеек и пройтись макросом по каждой из них.
Обработка списка ячеек
Укажите список объединенных ячеек в качестве аргументов функции Array. Для списка используйте адреса только первых ячеек из состава объединенных.
Sub ObkhodYacheyek1() Sub ObkhodYacheyek() Dim myCell() As Variant, myElem As Variant myCell = Array(«A1», «A3», «A5») For Each myElem In myCell Range(myElem).Select Call PodborVysoty Next End Sub |
Переменные:
- myCell — массив со списком адресов объединенных ячеек;
- myElem — используется как элемент массива myCell.
Макрос ObkhodYacheyek по адресам из списка обращается к каждой ячейке по очереди, выделяет ее и запускает код автоподбора высоты PodborVysoty.
Если выделить диапазон объединенных ячеек по одной, удерживая клавишу Ctrl, то запустить код автоподбора высоты можно с помощью следующего макроса:
Sub ObkhodYacheyek2() Dim myCell() As String, myElem As Variant myCell = Split(Selection.Address, «,») For Each myElem In myCell Range(myElem).Select Call PodborVysoty Next End Sub |