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

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

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

Спасибо!

1 ответ1

0

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

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

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

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. выберите View Code - откроется окно 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

Макросы должны быть включены, чтобы это работало!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .