У меня 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 для запуска макроса. Сохраните свою работу перед тестированием!
Может быть достигнуто без макроса, найдя все существующие ширины столбцов (=Cell("width",A1)
т.д.), Консолидируя, чтобы найти MAX для каждого столбца, а затем группировать и настраивать ширины.
Если вы не боитесь макросов, вы можете сделать что-то вроде этого:
For Each ws As WorkSheet In ActiveWorkbook.Worksheets
ws.Columns.AutoFit
Next ws