Bazaprogram.ru

Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel высота строки по содержимому

Подбор высоты строки/ширины столбца объединенной ячейки

Для начала немного теории. Если в ячейках листа 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_W возвращаем высоту строки первой ячейки .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, 1 836 скачиваний)

Если подобную операцию приходится производить постоянно — советую коды записать в надстройку: Как создать свою надстройку?. Так же можно воспользоваться уже готовым решением в составе MulTEx — Высота/Ширина объединенной ячейки.

Автоподбор высоты строки в Excel по содержимому

Во время работы с таблицами Excel нередко возникает ситуация, когда информация в ячейке выходит за ее рамки. Конечно же, можно постараться каким-то образом убрать лишние данные, тем самым сократив содержимое ячейки. Но это редко помогает, поэтому наиболее практичным решением будет сдвиг ее границ, чтобы уместить все данные внутри нее. Сделать это можно путем настройки ширины столбца или высоты строки. Давайте остановимся на последнем варианте и посмотрим, как можно задать высоту строки, причем, чтобы она определялась программой автоматически.

Читать еще:  Работа с базой данных excel 2020

Автоподбор высоты строк

Сначала давайте разберемся, что такое автоподбор высоты строки. Это функция, позволяющий подстроить высоту всех ячеек строки под содержимое самой заполненной из них (ширина при этом остается неизменной). Тут важно понимать, что инструмент направлен на автоматическую настройку границ, но сам по себе он в автоматическом режиме не работает, а это значит, что его нужно самостоятельно задействовать по отношению к выделенным элементам. Выполнить данное действие можно разными способами, так что давайте рассмотрим каждый из них подробнее.

Метод 1. Автоподбор высоты через формат ячеек

Это первый метод, и он же – обязательное условие для реализации следующих способов. Дело в том, что автоподбор работает исключительно по отношению к тем ячейкам, в которых активирован перенос по словам.

Итак, давайте приступим:

  1. Щелкаем правой кнопкой мыши по ячейке/выделенному диапазону (в нашем случае выделяем всю таблицу) и в контекстном меню щелкаем по строке “Формат ячеек…”.
  2. Откроется окно форматирования, в котором переключаемся во вкладку “Выравнивание”. В параметрах “Отображение” ставим галочку напротив опции “переносить текст”, после чего щелкаем OK.
  3. Благодаря нашим действиям, содержимое выделенных ячеек полностью отобразилось в них с учетом переноса, а высота строк изменилась ровно на столько, сколько необходимо для того, чтобы полностью отобразить все данные.

Теперь перейдем к остальным ситуациям, когда мы имеем дело с ячейками, в которых включен перенос текста, но границы сдвинуты так, что часть информации в них не “вписывается” или, наоборот, в ячейках остается слишком много свободного места.

Метод 2. Настройка высоты через координатную панель

  1. На вертикальной координатной панели щелкам по порядковому номеру строки, для которой нужно настроить автовысоту. Вся строка вместе с ее номером должна выделиться после этого.
  2. Теперь все на той же координатной панели наводим указатель мыши на нижнюю границу выделенной строки, как только он изменит привычный вид на стрелки вверх и вниз, выполняем двойной щелчок левой кнопкой мыши.
  3. Как мы можем сразу же после этого заметить, высота выделенной строки подстроилась таким образом, чтобы вместить содержимое самой заполненной ячейки. При этом границы столбцов остались неизменными.

Метод 3. Автоподбор высоты для нескольких строк

Если требуется одновременно настроить высоту нескольких строк, описанный выше метод не так хорош, так как на поочередное выделение и настройку высоты каждой строки может уйти немало времени. Поэтому в таких случаях лучше придерживаться следующего плана действий:

  1. На координатной панели вместо одной строки одновременно выделяем диапазон строк, высоту которых хотим настроить. Как это сделать, читайте в нашей статье “Как выделить ячейки в Эксель“.
  2. Теперь аналогично методу, описанному выше, двойным щелчком левой кнопки мыши автоматически задаем высоту строк. Наводить указатель мыши можно на нижнюю границу любой строки выделенного диапазона.
  3. Все готово. Мы задали оптимальную высоту для всех строк, которые выбрали, выполняя первый шаг.

Метод 4. Использование инструментов на ленте

Многие наиболее часто используемые функции программы Эксель вынесены в виде отдельных кнопок на Ленту программы. Для автоподбора высоты также предусмотрена своя собственная кнопка, и вот как ею нужно пользоваться:

  1. Отмечаем область ячеек, высоту которых нужно автоматически задать.
  2. Переключаемся во вкладку “Главная” и нажимаем кнопку “Формат”, которая расположена в разделе “Ячейки”. Откроется перечень команд, среди которых нам нужна строка “Автоподбор высоты строки”, следовательно, щелкаем по данному пункту.
  3. Это все, что нужно было сделать для того, чтобы автоматически задать высоту строк для выделенного фрагмента данных.

Метод 5. Настройка высоты для объединенных ячеек

Несмотря на то, что функция автоподбора высоты срок не применима к объединенным ячейкам, и эта задача вполне выполнима.

Суть данного метода заключается в том, что на самом деле никакого объединения ячеек не будет, мы лишь создадим видимость слияния, что позволить использовать автоподбор.

Читать еще:  Логарифм в excel

  1. Сначала нужно выделить ячейки, которые мы якобы хотим объединить.
  2. Затем щелчком правой кнопки мыши по выделенному диапазону вызываем контекстное меню, в котором выбираем строку “Формат ячеек…”.
  3. Переключаемся во вкладку “Выравнивание”, кликаем по текущему варианту выравнивания по горизонтали, выбираем “по центру выделения” и жмем кнопку OK.
  4. В результате текст из первой ячейки расположился по центру выделенных элементов, при этом, объединение ячеек не было выполнено.
  5. Теперь осталось только применить функцию автоподбора высоты строк любым из способов, описанных выше.

Заключение

Во время работы в программе Excel одну и ту же задачу можно выполнить разными способами. Это касается и настройки высоты строк. Если речь идет о небольших таблицах, данный параметр можно задать отдельно для каждой строки. Но когда мы имеем дело с большими табличными массивами, лучше использовать такую функцию, как автоподбор высоты ячеек, которая позволит справиться с поставленной задачей значительно быстрее.

Автоподбор в EXCEL ширины столбца и высоты строки по содержимому ячеек

Наиболее быстрый способ добиться, чтобы содержимое ячеек отображалось полностью – это использовать механизм автоподбора ширины столбца/ высоты строки по содержимому.

Пусть имеется таблица с ячейками заполненными текстовыми значениями.

Автоподбор ширины столбца

Как видно из рисунка выше, текстовые значения в ячейках А2 и А3 отображаются не полностью, т.к. мешает текст в столбце B . Нам необходимо, чтобы содержимое всех ячеек в столбце A отображалось полностью. Для этого необходимо сделать ширину столбца A достаточной для отображения самого длинного текста в столбце. Делается это элементарно: подводим указатель мыши к разделу столбцов А и B (на сером заголовке столбцов), курсор примет следующий вид:

Делаем двойной клик мышкой и, Voila, ширина столбца стала достаточной для отображения значений во всех ячейках столбца (с учетом скрытых строк).

Если нужно выровнять ширину по содержимому у сразу нескольких столбцов, то делаем следующее:

  • выделяем необходимые столбцы (за их серые заголовки);
  • подводим курсор к любому разделу выделенных столбцов и дважды кликаем.
  • Выберите столбец или столбцы, ширину которых нужно изменить;
  • На вкладке Главная в группе Ячейки выберите команду Формат ;
  • В группе Размер ячейки выберите пункт Автоподбор ширины столбца .

Автоподбор высоты строки

Если ячейки содержат значения с очень большой длиной строки (например, если длина текстовой строки без переносов сравнима с шириной видимой части листа), то ширина столбца может стать слишком большой, работать с данными будет не удобно. В этом случае нужно выделить ячейки и включить опцию Переносить по словам через Формат ячеек (или через меню Главная/ Выравнивание/ Перенос текста ).

Ширина столбца останется прежней, зато высота строки автоматически увеличится, чтобы полностью отобразить значение ячейки.

Иногда, не смотря на установленную опцию Переносить по словам , высоты строки не хватает, чтобы отобразить текстовую строку полностью (это могло произойти, если высота строки была уменьшена вручную). В этом случае нужно поступить также, как мы поступали в случае подбора ширины строки — дважды кликнуть на границе раздела, но теперь не столбцов, а строк:

После этого текстовое значение будет отображено в ячейке полностью:

Реальный пример

Теперь применим рассмотренный метод в реальной ситуации – отредактируем таблицу, созданную путем копирования данных из MS ACCESS. Скопируем через Буфер обмена какую-нибудь таблицу из MS ACCESS на лист EXCEL.

Обратите внимание, что у ячеек, в которые мы вставили значения из Буфера обмена , включена опция Переносить по словам, хотя, по умолчанию, она отключена (EXCEL сам включил ее при вставке). Кроме того, EXCEL не стал изменять ширину столбцов, установленную по умолчанию, а была изменена только высота строк, чтобы полностью отобразить все значения. Такое форматирование таблицы не всегда устраивает пользователя. Используя вставленную таблицу, решим 2 задачи.

Задача1. Предположим, нам нужно, чтобы все значения отображались в таблице в одну строку.

  • выделите вставленные значения (для этого выделите любую ячейку таблицы и нажмите CTRL+A (выделится текущая область ), если таблица не содержит пустых строк и столбцов, то будут выделены все вставленные значения);
  • выключите опцию Переносить по словам (через меню Главная/ Выравнивание/ Перенос текста );
  • высота ячеек будет уменьшена так, чтобы отображать только одну строку, как следствие часть значений станет невидна;
Читать еще:  Чистрабдни межд в excel

  • выделите столбцы А , B и С за серые заголовки;
  • подведите указатель мыши к разделу столбцов А и B (на сером заголовке столбцов) и дважды кликните.

Задача решена: содержимое всех ячеек полностью отображается.

Задача2. Теперь предположим, что нам нужно, чтобы все столбцы имели определенную, заданную пользователем, ширину, а значения полностью бы отображались в ячейке. При этом высота строки должна быть минимальной.

  • задайте требуемую ширину столбцов А , B и С ;
  • опцию Переносить по словам не выключайте (включите);

  • выделите все строки, содержащие вставленные значения, или все ячейки листа (все ячейки листа можно выделить нажав кнопку Выделить все в левом верхнем углу листа или дважды нажав CTRL+A );
  • подведите указатель мыши к разделу любых двух заполненных строк (на сером заголовке столбцов) и дважды кликните.

Задача решена: содержимое всех ячеек полностью отображается.

Случай с объединенными ячейками

В случае, если две или несколько ячеек объединены в одну, то рассмотренный подход не сработает. Можно ли осуществить автоподбор высоты строки в случае объединенных ячеек? Об этом читайте в одноименной статье Автоподбор высоты строки по содержимому при объединении ячеек .

Изменение ширины столбцов и высоты строк в Excel

Работая в Microsoft Excel, Вы можете свободно изменять высоту строк и ширину столбцов и устанавливать их нужной величины. Excel предлагает множество инструментов осуществить это, включая функцию автоподбора высоты и ширины. В данном уроке мы рассмотрим самые распространенные способы изменения размеров строк и столбцов.

При создании новой книги все строки и столбцы устанавливаются одной высоты и ширины, это происходит по умолчанию. Excel позволяет изменять ширину столбцов и высоту строк самыми различными способами, в том числе с помощью переноса текста по словам и объединения ячеек.

Изменение ширины столбца в Excel

На примере ниже некоторая часть текста в столбце A не отображается, поскольку ширина ячейки слишком мала. Мы можем сделать весь текст видимым, просто изменив ширину столбца А.

  1. Наведите курсор на границу столбца справа от заголовка, он примет вид двойной стрелки.
  2. Нажмите и, не отпуская левую кнопку мыши, переместите курсор, чтобы увеличить или уменьшить ширину столбца.
  3. Отпустите левую кнопку мыши. Ширина изменится.

Если вы вдруг увидели, что вместо ожидаемого результата, вся ячейка заполнена знаками решетки (#####), это означает, что ширины недостаточно для отображения содержимого ячейки. Просто увеличьте ширину столбца, чтобы все содержимое полностью поместилось.

Автоподбор ширины столбца и высоты строки в Excel

Инструмент Автоподбор позволяет установить ширину столбца или высоту строки в соответствии с его содержимым.

  1. Наведите курсор на границу столбца справа от заголовка, он примет вид двойной стрелки.
  2. По двойному щелчку левой кнопкой мыши ширина столбца автоматически изменится в соответствии с содержимым ячеек.

Вы можете воспользоваться инструментом Автоподбор для изменения ширины сразу нескольких столбцов. Для этого выделите столбцы, которые необходимо изменить, а затем на вкладке Главная из раскрывающегося меню команды Формат выберите пункт Автоподбор ширины столбца. Этот же способ может быть использован для автоподбора высоты строки.

Изменение высоты строки в Excel

  1. Наведите курсор на нижнюю границу заголовка строки, он примет вид двойной стрелки.
  2. Нажмите и, не отпуская левую кнопку мыши, переместите курсор, чтобы увеличить или уменьшить высоту строки.
  3. Отпустите левую кнопку мыши. Высота строки изменится.

Изменение высоты всех строк на листе Excel

Вместо того чтобы изменять размеры строк и столбцов по отдельности, Вы также можете изменить их одновременно. Этот метод позволяет установить единый размер всех строк и столбцов на листе. В следующем примере мы установим одинаковую высоту для каждой строки.

  1. Выделите все ячейки на листе Excel, для этого щелкните по кнопке Выбрать все, которая находится на пересечении заголовков строк и столбцов.
  2. Наведите курсор на нижнюю границу заголовка любой строки, он примет вид двойной стрелки.
  3. Нажмите и, не отпуская левую кнопку мыши, переместите курсор, чтобы увеличить или уменьшить высоту строки.
  4. Отпустите левую кнопку мыши. Высота всех строк изменится и станет одинаковой.

Вы можете выделить все ячейки на листе Excel просто нажав комбинацию Ctrl+A на клавиатуре.

Ссылка на основную публикацию
Adblock
detector