2012-02-14 21:16:14 +0000 2012-02-14 21:16:14 +0000
91
91

如何让Excel的 "自动适应行高 "功能实际自动适应行高?

在我记忆中的每一代Excel中(包括我现在使用的2010年),Excel的 “自动大小行 "功能有时会在单元格中包含包裹的文字时,无法实际自动适应行高。当它正常工作时,所有的文字都会被显示出来,并且在最后一行文字下面没有额外的空间。当它失败时,它会在文本下面增加额外的空间。更糟糕的是,你所看到的并不总是你所得到的,也就是说,在屏幕上看起来还不错的文字在打印时被剪掉了。

简单的测试案例:

为什么在A1单元格中的文字后有一行空白,而在A2单元格中却没有?

(要重现:将A列的宽度设置为17.14(125像素),文字包覆,单元格对齐顶部。)

(我仔细检查了一下,我对两行都应用了自动匹配行高,缩放级别是100%。)

(我仔细检查了一下,我对两行都应用了自动匹配行高。

有什么已知的补救方法吗?

答案 (16)

106
106
106
2012-12-05 10:49:44 +0000

我刚刚找到的一个方法(扩展一下上一篇帖子):

  • 选择整个工作表。
  • 调整一个列的宽度(因为选择了整个工作表,所以所有的列都会变宽)
  • 双击一个行分隔符–行高会自动匹配
  • 双击一个列分隔符–列宽会自动匹配

瞧!你的眼睛在哪里?

13
13
13
2012-02-15 19:07:25 +0000

Excel的WYSIWYG不是最好的。在你的图片中,'cat.‘只是勉强地溜到了第5行。如果你把缩放比例降低到100%以下(例如99%),那么'cat.'就会被包裹到第6行。我认为Excel试图以自动匹配的方式来确保无论你的缩放程度如何,所有的东西几乎都是可见的。此外,打印一个文字包装的单元格的方式并不总是与你在屏幕上看到的内容一致。以你的例子为例,将字体改为Courier,同时将大小保持在11。现在看看打印预览,'cat.'完全被隐藏了。

根据我的经验,Excel对某些字体和字体大小的问题比其他的更多。CourierCourier New*差,11号字体一般比10号或12号更差。(为什么他们选择11号作为新的默认字体,我不知道)。

3
3
3
2016-01-22 08:51:09 +0000

我只是为此写了一个小宏。我给它分配了一个快捷键(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 AsAdd-in%appdata%\Microsoft\Excel\XLSTART,到文件夹&007 这样每次启动Excel时,它就会被隐形加载。
0
0
0
2013-05-01 19:58:57 +0000

有一篇kb文章关于这个问题的 “建议"(这是很难让人接受的,典型的微软风格),如果你设置了一个行的高度,那么自动高度自动适配就会永久地消失。

虽然你可以在2003年用 "标准宽度 "设置重设列宽(疯子设计的2007年:改成 "默认宽度”),但他们忘了(又一次)(又一次)把这个设置放在行上。所以这个永久化似乎是不可避免的。这意味着,如果你有一个默认的高度为15,而你创建了一个页面,并将所有的高度设置为12,你只是放弃了自动自动装配。

0
0
0
2013-07-05 17:03:56 +0000

有时有核的方法来修复错误的自动问题。

我的做法是将每个单元格中的文本复制出来,然后将数据粘贴到记事本中,然后删除该行。然后,我立即复制并插入一行空白,但格式和被删除的行一样,行为良好。必须用左行按钮复制并插入整个行)

完成后,你必须回去把记事本中的文字插入到每个单元格中。(在插入文字之前,使用F2或其他方式激活每个单元格的编辑模式)。这是一个痛苦的问题,所以这是不得已而为之,特别是对于非常宽的工作表。

0
0
0
2015-01-08 19:14:53 +0000

我还没有彻底测试过,但它一直在为我工作。本质上,它将自动调整所有的表格,然后返回去,将列宽设置为原来的宽度,除非它被自动调整扩展了。我只做了10列,从来没有超过1000行,所以根据需要调整代码。

0
0
0
2012-06-21 14:33:14 +0000

在某些情况下,在调用 “AutoFit行高 "后,某些行中的多余空间的问题可能是隐藏的列在这些行中包裹了文本。

-1
-1
-1
2013-04-08 16:10:30 +0000

我使用的是Excel 2010。我发现这个问题发生在我的缩放设置不是100%的时候。只要我在100%的时候,我就不会在AutoFit的栏和行的文字被剪掉。

-1
-1
-1
2012-02-14 21:29:39 +0000

转述一下Dunc:

我解决了一个类似的问题:

1.选择整个电子表格。选择整个电子表格。

  1. 2. 双击两行之间的空白处的行。它可能不是一个可见的字符,但肯定是有的。
-1
-1
-1
2013-01-01 11:17:02 +0000

多年来,我也一直忍受着这个小小的但非常令人分心的错误。我没有任何解决的办法,除了在大多数文本单元格的行宽上做手脚,最终程序会重新调整并正常显示文本。

-1
-1
-1
2013-02-26 11:57:20 +0000

有一个简单的解决办法:

1)选择所有要自动格式化的行(如果是大块的行,按Shift+End和Shift+Down键,然后按Shift+End和Shift+Down键)

2)右键点击选中的单元格,格式化单元格,对齐选项卡,取消选中Wrap text。

-1
-1
-1
2015-12-17 16:10:03 +0000

其实那里有一个额外的字符。它是隐藏在每个字段末尾的LF字符。当文本的大小刚好合适时,多余的行就会在那里容纳LF字符。按照其他人的建议调整列的宽度,可以解决该单元格的问题,但是如果你的电子表格中的同一列中有很多不同大小的值,那么你对这个单元格的修复可能会导致该列中的另一个单元格出现问题。我已经学会了在大多数时候都能忍受。

-1
-1
-1
2012-08-06 12:19:12 +0000

我没有花时间去看其他的评论。为什么第一块底部的行,而第二块没有?

这是因为文字的结尾太靠近单元格的右边缘了。如果你把列调整得宽一点,双击行与行之间,就会相应地调整大小。

-1
-1
-1
2013-06-20 11:46:42 +0000

我的假设是,Excel在需要扩展太多行的时候会打结。我也有过类似的经历。它看起来好像在结尾处有一个额外的NL/CR/LF,但我知道没有。如果我一次建立一些字符,它就会自动格式化,直到达到一个特定的大小,然后它就会把多余的行放进去。(如果你从删除一些字符开始,也会出现类似的反向行为)。这在不同的单元格中会在不同的时间发生。

Bummer!

所以如果你能_能扩展单元格的宽度,你也许可以避免这个问题。如果你不能(就像我的情况),你就只能用手动格式化。就像我说的,"Bummer!“

-2
-2
-2
2013-01-30 20:38:33 +0000

选择所有单元格,然后点击分隔行的行两次………..它会自动完成。

-2
-2
-2
2012-12-20 00:41:51 +0000

对我来说,我的方法是删除数据右边的一百多列未使用的列。我只能猜测是那里的东西导致了自动行高的错误行为。