行高度AutoFit不起作用

所以,今天是我糟糕的一天
我发现excel行AutoFit – 不起作用

a = "Please" b = "Do AutoFit" range01.Value = a & vbNewLine & b range01.EntireRow.AutoFit // First and last line are horizontally cutted 

Chr(10)而不是vbNewLine – 没有帮助
它只有在我没有换行符的情况下才有效:

 range01.value = a & b range01.EntireRow.AutoFit // works !!! Thanks to Microsoft ! 

确保其中有换行符的单元格打开“换行文本”。 你可以像这样用VBA打开它:

 Sub test1() Dim a As String, b As String a = "Please" b = "Do AutoFit" Range("A1").Value = a & vbNewLine & b Range("A1").WrapText = True Range("A1").EntireRow.AutoFit End Sub 

自动调整不适用于合并的单元格。 我的猜测就是你想要做的。

通过模拟与合并单元格具有相同宽度的单个单元格上的自动调整并设置它为您提供的高度来解决此问题。

像这样的东西:

 Dim YourString As String, a As String, b As String Dim TempLoc as Range a = "Please" b = "Do AutoFit" YourString = a & vbNewLine & b Set TempLoc = range01.offset(0, 10) ' Given the column 10 columns to the right has the exact same witdh as your merged cell. ' Autofit a single cell to get correct height With TempLoc .Value = YourString .WrapText = True .EntireRow.AutoFit .RowHeight = TempLoc.RowHeight .ClearContents End With 

你可以这样做:

 Private Sub Worksheet_Activate() Worksheets("Sheet1").Range("A:A").EntireRow.AutoFit End Sub 

我解决了这个问题 – 我有一个包含两个合并单元格的行,它们都包含带有Chr(10)换行符的多行文本 – 将Wrap设置为ON(但实际上没有行换行 – 只有Chr(10)导致新行) 。 由于合并的单元格,自动适应不起作用。

VBA的解决方法是在同一行使用一个备用单元,并填充与多行单元中的一个(任一)中find的相同数量的Chr(10)。 然后调用该单元格的AutoFit现在包含相同数量的不可见的换行符。 确保备用单元的字体和大小相同!

 ' make C36 spare cell contain the same number of Chr(10) as D36, using a Repeat function : ' (after counting Chr(10) by comparing the length before and after substituting Chr(10) with "") Worksheets(1).Range("C36").Value = _ Application.WorksheetFunction.Rept(Chr(10), _ Len(Worksheets(1).Range("D36").Value) - Len(Replace(Worksheets(1).Range("D36").Value, Chr(10), ""))) Worksheets(1).Range("C36").Rows.AutoFit 

其他scheme的替代方法可能是使用额外的隐藏工作表 – 将单个单元格设置为与合并单元格相同的列宽,复制内容,调用autofit(应该在未合并的单元格上工作),然后使用由此产生的rowheight。