Excel – изменение размера столбца во всех листах

Вопрос: У меня 52 листа в книге Excel (1 за каждую неделю). Все они имеют одну и ту же таблицу, но разные значения (денежный поток). Теперь, когда количество длин в ячейках меняется, во всех листах все ширины столбцов отличаются. Так, например: Sheet1, column A width = 100 pixels Sheet2, columb A width = 105 pixels

Вопрос:

У меня 52 листа в книге Excel (1 за каждую неделю). Все они имеют одну и ту же таблицу, но разные значения (денежный поток). Теперь, когда количество длин в ячейках меняется, во всех листах все ширины столбцов отличаются. Так, например:

Sheet1, column A width = 100 pixels Sheet2, columb A width = 105 pixels Sheet1, column B width = 150 pixels Sheet2, column B width = 135 pixels … so on

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

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

Sheet1, column A — based on its largest value, requires width of 120 pixels Sheet2, column A — based on its largest value, requires width of 140 pixels Sheet3, column A — based on its largest value, requires width of 100 pixels

Я хочу изменить размер столбца A всех 52 листов до 140 пикселей.

Цель состоит в том, что таким образом, когда они будут напечатаны, на всех 52 листах будут располагаться таблицы с отступом.

Можно ли это сделать автоматически?

Лучший ответ:

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

For c = 1 To 20 ’20 columns m = 0 ‘max width reset For Each w In Worksheets If w.columns(c).ColumnWidth > m Then _ m = w.columns(c).ColumnWidth Next w For Each w In Worksheets w.columns(c).ColumnWidth = m Next w Next

Чтобы настроить макрос, нажмите Alt-F11, затем Insert, затем Module. Вы можете вставить этот код в модуль, а затем нажать F5 для запуска макроса. Сохраните свою работу перед тестированием!

Ответ №1

Может быть достигнуто без макроса, найдя все существующие ширины столбцов (=Cell(«width»,A1) т.д.), Консолидируя, чтобы найти MAX для каждого столбца, а затем группировать и настраивать ширины.

Ответ №2

Если вы не боитесь макросов, вы можете сделать что-то вроде этого:

For Each ws As WorkSheet In ActiveWorkbook.Worksheets ws.Columns.AutoFit Next ws

Оцените статью
Добавить комментарий