Excel - 调整所有工作表中的列的大小

时间:2013-09-09 17:57:53

标签: excel

我在Excel工作簿中有52张(每周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

我想将所有52张表格中的所有A列重新调整为140像素。

目的是通过这种方式,当它们被打印时,所有52张纸将容纳非常大小的桌子。

这可以通过任何方式自动完成吗?

3 个答案:

答案 0 :(得分:1)

如果您知道要使用的列数,请调整以下内容:

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,然后按插入,再按模块。您可以将此代码粘贴到模块中,然后按F5运行宏。在测试前保存您的工作!

答案 1 :(得分:1)

可以在没有宏的情况下通过查找所有现有的所需列宽(=Cell("width",A1)等)来实现,合并以找到每列的MAX,然后对宽度进行分组和调整以适应。

答案 2 :(得分:-1)

如果你不害怕宏,你可以这样做:

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