Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何在 Excel 中自動調整合併儲存格的列高?

Author: Xiaoyang Last Modified: 2025-08-23

在 Excel 中,快速且準確地調整列高對於清楚呈現您的資料至關重要。一般情況下,您可以使用「自動調整列高」功能來自動調整列的高度以適應儲存格內容。然而,當處理合併儲存格時,您可能會注意到「自動調整列高」並未如預期般響應。也就是說,Excel 的自動調整功能完全忽略了合併儲存格,因此在這些情況下無法自動調整列高以容納內容。結果是,您通常需要手動調整每個合併儲存格的列高,以確保所有內容都是可見的,這可能既乏味又容易出錯——特別是在您有許多合併儲存格時。

本文介紹了幾種實用的方法,幫助有效地自動調整合併儲存格的列高,節省您的時間並幫助保持工作表整潔、易讀:

使用 VBA 程式碼自動調整合併儲存格的列高

使用自動換行和手動調整


使用 VBA 程式碼自動調整合併儲存格的列高

假設您的工作表包含幾個具有不同內容量的合併儲存格,如下方截圖所示。如果您希望所有的數據都能完全可見,而無需手動調整每一列,則可以使用 VBA 程式碼解決方案一次自動調整每一個合併儲存格的列高。此方法尤其適用於當您工作表中有多個合併範圍時,或當合併儲存格內容經常更新且您想簡化調整過程時。

在執行任何 VBA 之前,請記住將您的工作簿保存為啟用宏的文件,以防止未保存的工作丟失。VBA 是由 Excel 提供的安全方法,但請確保已啟用宏並且您的安全設定允許在系統上執行宏。

sample data

1. 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 視窗。

2. 點擊 插入 > 模組,然後將以下程式碼複製並粘貼到模組視窗中:

VBA 程式碼:自動調整多個合併儲存格的列高
Option Explicit
Public Sub AutoFitAll()
  Call AutoFitMergedCells(Range("a1:b2"))
   Call AutoFitMergedCells(Range("c4:d6"))
    Call AutoFitMergedCells(Range("e1:e3"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
  Dim tHeight As Integer
  Dim iPtr As Integer
  Dim oldWidth As Single
  Dim oldZZWidth As Single
  Dim newWidth As Single
  Dim newHeight As Single
  With Sheets("Sheet4")
    oldWidth = 0
    For iPtr = 1 To oRange.Columns.Count
      oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
    Next iPtr
    oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth
    oRange.MergeCells = False
    newWidth = Len(.Cells(oRange.Row, oRange.Column).Value)
    oldZZWidth = .Range("ZZ1").ColumnWidth
    .Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth)
    .Range("ZZ1").WrapText = True
    .Columns("ZZ").ColumnWidth = oldWidth
    .Rows("1").EntireRow.AutoFit
    newHeight = .Rows("1").RowHeight / oRange.Rows.Count
    .Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight
    oRange.MergeCells = True
    oRange.WrapText = True
    .Range("ZZ1").ClearContents
    .Range("ZZ1").ColumnWidth = oldZZWidth
  End With
End Sub

注意:

(1.) 如果您需要調整其他合併範圍,只需根據需要複製 Call AutoFitMergedCells(Range("a1:b2")) 這一行多次,並更新您希望自動調整的每個合併範圍的地址即可。

(2.) 請記住將腳本中的 Sheet4 更改為合併儲存格所在的實際工作表名稱。如果您不確定工作表名稱,請檢查 Excel 視窗底部的工作表標籤。

(3.) 在運行宏時,請確保所選範圍內沒有包含關鍵或敏感數據的儲存格,以免意外更改格式。

3. 按 F5 鍵執行此程式碼。執行後,所有指定的合併儲存格會自動調整其列高以充分顯示儲存格內容,如下所示:

 result of auto fitting row height of merged cells with vba code

此 VBA 解決方案提供了一種方便、自動化的方式來處理合併儲存格的尺寸。但是,它需要訪問開發者選項卡並獲得使用宏的許可——如果在禁用或限制宏的環境中進行協作,請記住這一點。


使用自動換行和手動調整

對於許多場景,您可以將自動換行功能與快速手動調整列高結合起來,以確保所有內容清晰可見,而無需依賴 VBA 或複雜工具。

步驟 1:啟用自動換行
  1. 選擇要格式化的合併儲存格。
  2. 轉到「主頁」選項卡,並點擊對齊組中的「自動換行」。

這樣可以使內容在合併區域內自動換行到新行。

步驟 2:檢查顯示效果並根據需要手動調整列高

如果您的文字不是很長,現在應該能完美適合合併儲存格內。

如果內容較長且仍然無法完全可見,則手動拖動合併儲存格下方的列邊界,增加列高直到所有內容都顯示出來。

? 重要提示:Excel 無法自動調整合併儲存格的列高;自動換行選項僅啟用換行符號,但不會自動調整列高。因此,在換行後,您可能需要手動微調列高。

相關文章:

如何在 Excel 中自動調整列寬?


最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
15 大工具集12 項文本工具添加文本刪除特定字符…)50+ 儀表 類型甘特圖等)40+ 實用 公式基於生日計算年齡等)19 項插入工具插入QR码根據路徑插入圖片等)12 項轉換工具金額轉大寫匯率轉換等)7 項合併與分割工具高級合併行分割儲存格等)...及更多
使用 Kutools,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過40 種語言!

運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...


Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單

  • 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀
  • 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
  • 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用