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

Вопрос:

У меня 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

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