Вопрос:
У меня 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