
Контекст:У меня есть лист с раскрывающимся списком с различными категориями. На листе также есть таблица, информация в которой обновляется в зависимости от того, какая категория выбрана в раскрывающемся списке. Некоторые категории выдают много текста, требующего больших ячеек, а некоторые имеют только небольшое количество текста, требующего маленьких ячеек.
Что я ищу:Мне нужен способ, при котором размер ячейки будет автоматически обновляться в зависимости от объема текста в ячейке для любой заданной категории.Я понимаю, как это сделать. вручную,выделив всю страницу и нажав кнопку автоподгонки или дважды щелкнув разделители столбцов или строк. Однако я хотел бы иметь возможность сделать это сразу после выбора раскрывающегося элемента. Причина в том, что эту таблицу будут использовать разные люди, и если они не знают, что им нужно вручную обновить размеры ячеек, они могут пропустить важную информацию, поскольку для таблицы заданы маленькие размеры ячеек, и не очевидно, что текст был обрезан. И наоборот, если я по умолчанию задаю для таблицы очень большие размеры ячеек, то при выборе категории, которая выводит только небольшое количество текста, таблица становится намного больше и громоздче, чем должна быть.
Кто-нибудь знает, как сделать так, чтобы размеры ячеек автоматически обновлялись при изменении количества текста в них?
Спасибо!
решение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
Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:
- щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
- выберите «Просмотреть код» — откроется окно VBE
- вставьте текст и закройте окно VBE
Если у вас возникли какие-либо сомнения, попробуйте сначала на пробном листе.
Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx
Чтобы удалить макрос:
- откройте окна VBE, как указано выше
- очистить код
- закрыть окно 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
Для работы этого метода должны быть включены макросы!