Автоматическое обновление размера ячейки Excel в ответ на динамический контент

Автоматическое обновление размера ячейки Excel в ответ на динамический контент

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

Что я ищу:Мне нужен способ, при котором размер ячейки будет автоматически обновляться в зависимости от объема текста в ячейке для любой заданной категории.Я понимаю, как это сделать. вручную,выделив всю страницу и нажав кнопку автоподгонки или дважды щелкнув разделители столбцов или строк. Однако я хотел бы иметь возможность сделать это сразу после выбора раскрывающегося элемента. Причина в том, что эту таблицу будут использовать разные люди, и если они не знают, что им нужно вручную обновить размеры ячеек, они могут пропустить важную информацию, поскольку для таблицы заданы маленькие размеры ячеек, и не очевидно, что текст был обрезан. И наоборот, если я по умолчанию задаю для таблицы очень большие размеры ячеек, то при выборе категории, которая выводит только небольшое количество текста, таблица становится намного больше и громоздче, чем должна быть.

Кто-нибудь знает, как сделать так, чтобы размеры ячеек автоматически обновлялись при изменении количества текста в них?

Спасибо!

решение1

Создайте макрос для обновления ширины столбца при каждом изменении ячейки в этом столбце.

Ячейки изменяются из-за ввода данных пользователем или из-за пересчета формулы. Вы бы использовали другой тип макроса для каждого типа изменения. Ниже приведен типичный пример ручного ввода в столбецС:

Вставьте следующий макрос события в область кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub
    Cells(1, "C").EntireColumn.AutoFit
End Sub

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите «Просмотреть код» — откроется окно VBE
  3. вставьте текст и закройте окно VBE

Если у вас возникли какие-либо сомнения, попробуйте сначала на пробном листе.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. откройте окна VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы узнать больше о макросах в целом, см.:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

и

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о макросах событий (код рабочего листа), см.:

http://www.mvps.org/dmcritchie/excel/event.htm

Для работы этого метода должны быть включены макросы!

Связанный контент