2017-07-15 697 views
1

我做了一張excel表格,用作問卷。爲了允許廣泛的回答並調整設計,我合併了單元格。我現在遇到的問題是行高不會自動調整。因此,我寫了一個簡短的宏來解決這個問題。但是,此宏只適用於單個單元格,並不適用於合併的單元格。因此,我想知道我該如何解決這個問題。如何使用vba excel中的宏調整合並單元格的行高?如何使用vba excel中的宏調整合並單元格的行高?

謝謝你的幫助!

+0

您只需調整合並單元組中最後一行的高度,例如如果A1:A3合併:行(「3:3」)。RowHeight = 33 – Absinthe

+0

是否希望將所有合併行的高度調整爲相同的數量? ...你也可以在合併行中插入行 – jsotola

+0

合併單元是一個壞主意(Excel恕我直言,最糟糕的功能之一)。我只建議將它們作爲可打印報告表上的最後修飾 - 不再添加或轉換任何數據。爲什麼不考慮Text Wrap和Row.Autofit。您可以先設置列寬,然後使用VBA自動安裝,以獲得您的設計。 – MacroMarc

回答

0

與往常一樣,如果您發佈了宏,但我猜測您正在嘗試使用.entirerow.autofit命令會有幫助嗎?如果是這樣,我不相信這個函數評估一個合併的單元格。 (有人糾正我,如果我錯了!)

你可能要考慮使用「中心跨範圍」,而不是合併單元格。或者您可能想要創建一個規則來循環遍歷單元格來檢查字符長度,或者是否輸入了「輸入密鑰」CHR(10),以及基於此的大小。示例:

 Sub TestEachCl() 
     Dim CL As Range 

     'Make sure to include the intersect with usedrange, 
     'otherwise this will take much longer than necessary. 
     For Each CL In Intersect(Rows(20), ActiveSheet.UsedRange).Cells 

     If InStr(1, CL.Formula, Chr(10)) > 0 Then 
     'enter key exists in a cell 
     CL.EntireRow.Height = 30 
     'probably want to close the loop or have it not do 
     'anything else once it has reached max height, 
     'so it doesn't reduce the size 

     End If 

     Next CL 

     End Sub 
相關問題