題 如何使Excel的“自動調整行高”功能實際上自動適合行高?


對於我能記住的每一代Excel(包括我現在使用的2010),當單元格包含包裝文本時,Excel的“自動大小行”功能有時無法實際自動調整行的大小。當它正常工作時,所有文本都會顯示,並且最後一行文本下方沒有額外的空格。當它失敗時,它會在文本下方添加額外的空間。更糟糕的是,你所看到的並不總是你所得到的,即在屏幕上看起來沒問題的文字在打印時會被切斷。根據您是放大/縮小還是實際尺寸,您還可以獲得不同的大小。

簡單的測試案例:

為什麼在單元格A1中的文本後面有一行間隙而在A2中沒有?

(要重現:將A列的寬度設置為17.14(125像素),文本換行和單元格對齊頂部。)

(我仔細檢查了我在兩行中都應用了自動調整行高。縮放級別為100%。)

Auto Fit fails for the first row, succeeds for the second

有沒有任何已知的補救措施,而不需要手動調整行高(這對於少數幾行來說是不實用的)?


84
2018-02-14 21:16


起源


如果有人想在我的問題中重現這個例子,A列的寬度是17.15(125像素)。 - devuxer
Bug似乎取決於字體和字體大小 - Raystafarian
@Raystafarian,似乎無法使用Wrap Text打開。 - devuxer
我嘗試自動調整列,擴展了一列,然後自動調整行。它從73頁降到64頁,但在大多數行的底部仍然有很多空白行。我將行對齊頂部。手動更改行的大小使我在處理文檔時看起來不錯,但不能在預覽或打印中查看。
是的,太煩人了!至少在Excel 2007中也看到了這一點。不記得曾經在Excel 2003中看到它。 - abstrask


答案:


我剛剛找到的一種方法(稍微擴展了上一篇文章):

  • 選擇整張表。
  • 將列的大小調整一點(因為 選擇整張紙,所有列都會變寬
  • 雙擊行分隔符 - 將自動調整行高
  • 雙擊列分隔符 - 將自動調整列寬

瞧!


97
2017-12-05 10:49



這似乎確實有效。一個灰色區域是你說“稍微寬一點”的地方。我試過的其中一個例子沒有用,除非我把列擴大了很多,但我最終確實讓它工作了。謝謝! - devuxer
我選擇了整個工作表,然後雙擊兩個隨機行之間的行分隔符,整個文檔重新調整行高。 - Keith Sirmons
請注意,AutoFit不適用於任何合併的單元格: support.microsoft.com/kb/212010 - freb
真棒!有人知道這可能在VBA腳本中? - Andreas Furster
如果所有列的寬度相同,此方法不起作用嗎?當我將列調整得更寬一點時,所有其他列的寬度都相同(在Excel 2010中)。 - Ed Greaves


Excel的WYSIWYG不是最好的。在你的照片中,'貓'。只是勉強潛入第5行。如果將縮放百分比降低到小於100%(例如99%),則“貓”。現在被包裹到第6行。我認為Excel正在嘗試自動調整,以確保無論縮放級別如何,所有內容幾乎始終可見。

這不是AutoFit唯一的問題。此外,打印自動換行的單元格的方式並不總是與您在屏幕上看到的相匹配。舉個例子,將字體更改為Courier,同時將大小保持為11。

Changed font to Courier

如您所見,單元格A1似乎有1.5個額外的行。現在看看打印預覽,“貓”。是完全隱藏的。

print preview of same file

根據我的經驗,Excel對某些字體和字體大小的問題比其他字體更多。 信使 比...差 快遞新,大小11通常比10或12差。(為什麼他們選擇11號作為新的默認值,我不知道。)


13
2018-02-15 19:07



所以...基本上他們打破了它。你的解釋是合理的,但它真的讓我感到困惑,它是這樣的: - / - abstrask


我剛剛為此目的寫了一個小宏。我給它分配了一個快捷鍵(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
    這樣,每次啟動Excel時都會無形地加載它。

2
2018-01-22 08:51



或者你可以這樣做:Private Sub Worksheet_Change(ByVal Target As Range)ArrangeTable End Sub - kurdtpage


在某些情況下,調用“AutoFit行高”後某些行中的額外空間問題可能是隱藏列已在這些行中包裝文本。


0
2018-06-21 14:33



在這個問題中並非如此。 - Dmitry Grigoryev


多年來,我也忍受了這個微小但極其令人分心的蟲子。除了擺弄包含大部分文本的單元格的行寬之外,我沒有解決方法,最終程序將放鬆並正確顯示文本。


0
2018-01-01 11:17



擺弄行寬 不是一個可重複的解決方案。 - Dmitry Grigoryev


有一個簡單的解決方案:

1)選擇要自動格式化的所有行(如果是大塊,請單擊第一個,然後按Shift + End和Shift + Down)

2)右鍵單擊選擇,格式化單元格,對齊選項卡,取消選中換行文本。

希望這可以幫助 ;)


0
2018-02-26 11:57



如果取消選中 Wrap text,自動調整行高不再有意義,因為所有行的大小都相同。 - Dmitry Grigoryev
多年來我一直為這個問題煩惱。為一個麻煩的行切換換行文本恢復了自動調整功能。 - Mitch


我有Excel 2010.我發現當我的縮放設置不是100%時,這個問題發生在我身上。只要我達到100%,我就不會使用AutoFit為列和行切斷文本


0
2018-04-08 16:10



在我用於我的問題的例子中,我一直在縮放= 100%。無論發生什麼問題。 - devuxer


有一個 kb文章 如果您設置了行高,那麼“建議”(以微軟經典方式令人無法接受),自動高度自動調整將永久消失在該工作表的那一行。你沒有觸及高度的行會自動調整好。

雖然您可以使用2003中的“標準寬度”設置重置列寬(瘋狂設計的2007:更改為“默認寬度”),但是他們(再次)忘記(並再次)將其放入行中。所以永久性似乎是不可避免的。這意味著,如果您的默認高度為15,並且您創建了一個工作表並將所有高度設置為12,那麼您將失去自動自動調整功能。


0
2018-05-01 19:58



我不能複制這種行為。只要我執行“自動調整行高”,該行的任何手動高度設置都會立即替換為自動調整高度。問題很簡單,自動調整高度通常是錯誤的。 - devuxer
我可以復制這種行為。這對我來說就是這樣。 - Peter Nore


有時會有核方法來修復行為不端的自動問題。

我所做的是從每個單元格中復製文本並將數據粘貼到記事本中,然後刪除該行。然後我立即復制並插入一行空白但具有與刪除的行相同的格式和行為。 (您必須使用左行按鈕複製並插入整行。)

完成後,您必須返回並將記事本中的文本插入每個單元格。 (使用 F2 或者在插入文本之前激活每個單元格的編輯模式。)這是一種痛苦,所以它是最後的手段,特別是對於極其寬廣的工作表。

它有時是唯一的解決方案,因為問題在於程序本身。


0
2017-07-05 17:03



從每個單元格中復製文本  - 這似乎需要與手動格式化一樣多的工作。 - Dmitry Grigoryev