我记得,在每一代 Excel 中(包括我现在使用的 2010 版),Excel 的“自动调整行大小”功能有时在单元格包含换行文本时无法真正自动调整行大小。当它正常工作时,所有文本都会显示出来,最后一行文本下方没有额外的空间。当它失败时,它会在文本下方添加额外的空间。更糟糕的是,您看到的内容并不总是您得到的内容,即,屏幕上显示正常的文本在打印时会被截断。您还会根据放大/缩小还是实际尺寸获得不同的大小。
简单测试用例:
为什么单元格 A1 中的文本后有一行间隙,而 A2 中却没有?
(复制:将 A 列宽度设置为 17.14(125 像素)、文本换行、单元格顶部对齐。)
(我仔细检查了是否将“自动调整行高”应用于两行。缩放级别为 100%。)
是否有任何已知的补救措施,而无需采取手动调整行高(这对于多行来说是不切实际的)?
答案1
我刚刚找到的一种方法(稍微扩展了上一篇文章):
- 选择整个工作表。
- 将列宽调整得稍微宽一些(因为选择了整个工作表,所以所有列都会变宽)
- 双击行分隔符 - 行高将自动调整
- 双击列分隔符 - 列宽将自动调整
瞧!
答案2
Excel 的所见即所得功能并不是最好的。在您的图片中,“cat.”勉强挤进第 5 行。如果您将缩放百分比降低到 100% 以下(例如 99%),那么“cat.”现在会缩减到第 6 行。我认为 Excel 正在尝试自动调整,以确保无论您的缩放级别如何,所有内容几乎始终可见。
这不是您在使用 AutoFit 时遇到的唯一问题。此外,自动换行单元格的打印方式并不总是与您在屏幕上看到的方式一致。以您的示例为例,将字体更改为 Courier,同时将大小保留为 11。
如您所见,单元格 A1 似乎多出了 1.5 行。现在查看打印预览,“cat.”已完全隐藏。
根据我的经验,Excel 在某些字体和字体大小上比其他字体和字体大小更容易出现此问题。导游比快递新品,尺寸 11 通常比 10 或 12 差。(我不知道他们为什么选择尺寸 11 作为新的默认尺寸。)
答案3
我刚刚为此编写了一个小宏。我给它指定了一个快捷键 (Ctrl-Shift-J),它对我来说非常有效。
Sub ArrangeTable()
'set proper column width and row height for the current region
With Selection.CurrentRegion
.Columns.ColumnWidth = 200
.Columns.EntireColumn.AutoFit
.Rows.EntireRow.AutoFit
End With
End Sub
为了使其永久可用,您可以轻松制作一个自动加载的插件:
- 在一个新的空白工作簿中创建一个模块并粘贴代码,
- 为其分配所需的快捷键,
- 然后
Save As
,,Add-in
到文件夹%appdata%\Microsoft\Excel\XLSTART
这样,每次启动 Excel 时它都会被不可见地加载。
答案4
有一个知识文章对此,它“暗示”(这是典型的 Microsoft 风格,令人无法接受的稀疏)如果您设置了行高,则该工作表的该行的自动高度调整将永久消失。但是,您没有触及高度的行将自动调整。
虽然您可以在 2003 年使用“标准宽度”设置重置列宽(madman 设计的 2007 年:更改为“默认宽度”),但他们忘记(一次又一次)将其放入行中。因此,永久性似乎是不可避免的。这意味着,如果您的默认高度为 15,并且您创建了一个工作表并将所有高度设置为 12,那么您就失去了自动调整功能。