在Excel中自动调整列宽,同时排除某些单元格/行

时间:2016-10-14 23:47:50

标签: excel cells except column-width

我已多次查找相关问题,但我从未发现类似的问题。每个人都想知道如何调整列宽,这很简单,我有更多细微的问题。

我喜欢自动调整,使看起来干净的桌子并确保一切都可见(aka .; ctrl-a,在列之间双击顶部),但是如果你有一个带有长文本的单元格(如在表的底部),当我只想按照我的列标题或表数据更新时,它使得像400像素宽的列能够捕获整个文本。 我希望能够将此文本单元格标记为excel,以便自动调整。

如果您可以将其设为居中,那么您可以将这些单元格对齐(以及右侧的1个单元格)设置为“#34;选择中心”#34;它将被忽略。但是,就像我上面的例子一样,我经常希望这个文本向左或向右对齐,不允许C.A.S.工作。

有没有人能够做到这一点?

2 个答案:

答案 0 :(得分:0)

如果您对VBA解决方案没问题,可以编写自定义例程来执行此操作。在此示例中,如果您传递要“仅限自动调整标题”的范围,它将基本上将标题复制到一个干净的单元格,运行自动调整,然后将该自动调整的宽度应用于您的列:

scanf(" %*c%*c%d %*c%*c%d %*c%d ", &i, &j, &k);

然后这样称呼它:

Sub AutoFitHeader(HeaderRow As Range)

  Dim col As Range
  Dim ws As Worksheet
  Set ws = ActiveWorkbook.Worksheets.Add
  ws.Visible = xlSheetHidden

  Application.DisplayAlerts = False

  For Each col In HeaderRow
    ws.Range("A1").Value = col.Value
    ws.Columns("A").AutoFit

    col.EntireColumn.ColumnWidth = ws.Columns("A").ColumnWidth
  Next col

  ws.Delete

  Application.DisplayAlerts = True

End Sub

答案 1 :(得分:0)

不确定它是否是设计使然,但以我的经验,自动调整大小会忽略任何打开了换行文本的单元格。因此,可以考虑在自动调整大小时为您要忽略的范围打开文本环绕。