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

我曾多次寻找相关的问题,但我从来没有find类似的问题。 每个人总是想知道如何调整列宽,这很容易,我有更多细微的问题。

我喜欢自动调整,使清洁的表格,并确保一切都是可见的(又名; ctrl-a,双击列之间的顶部),但如果你有一个单元格与长文本(如笔记在底部一个表),它使得像400像素宽的列捕捉整个文本,当我只是想要它根据我的列标题或表数据更新。 我想能够标记这个文本单元格被忽略excel自动调整。

如果您可以将它居中,那么您可以将单元格alignment(并将右边的单元格设置为1)为“居中select”,它将被忽略。 但是,就像我上面的例子一样,我经常希望这个文本向左或向右,不允许CAS工作。

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

如果您使用VBA解决scheme,您可以编写一个自定义例程来执行此操作。 在这个例子中,如果你传递的范围是“Autofit Headers Only”,那么它基本上将头部复制到一个干净的单元格,运行autofit,然后将自动填充宽度应用到你的列:

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 

然后这样称呼它:

 AutoFitHeader Range("A1:H1") 
Interesting Posts