Microsoft Excel 合併儲存格後自動調整列高失效問題

問題描述

「自動調整列高」在單一儲存格時功能正常

但合併儲存格後就只能顯示第一行文字
列高不再隨內容自動調整

這兩個功能似乎有衝突

解決辦法

1. 手動調整列高

https://support.microsoft.com/zh-tw/topic/you-cannot-use-the-autofit-feature-for-rows-or-columns-that-contain-merged-cells-in-excel-34b54dd7-9bfc-6c8f-5ee3-2715d7db4353

雖然這聽起來不像解決問題
但畢竟是官方的建議…

2. 另外一格

讓另一個儲存格內容 = 這個合併儲存格
因為是單一儲存格,所以自動調整列高會正常作用

缺點是工作表中會多一個不明儲存格

3. VBA

Sub test()
Dim Rng As Range
Dim UsedRng As Range
Dim adr$, RH!
Set UsedRng = Cells.SpecialCells(xlCellTypeConstants, xlTextValues + xlNumbers)
For Each Rng In UsedRng
    If Rng.MergeCells And Rng <> "" Then
        adr = Rng.MergeArea.Address
        Rng.UnMerge
        Rng.EntireRow.AutoFit
        RH = Rng.EntireRow.RowHeight
        Range(adr).EntireRow.RowHeight = RH / Range(adr).Rows.Count
        Range(adr).Merge
    End If
Next
End Sub

程式原理:
1. 取消合併儲存格
2. 取得自動列高(此時功能正常)
3. 再合併儲存格
4. 設定剛剛記錄的列高

缺點是要額外去執行這個程式碼