行高AutoFit不起作用

Ale*_*gro 7 excel vba

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

a = "Please"
b = "Do AutoFit"
range01.Value = a & vbNewLine & b  
range01.EntireRow.AutoFit // First and last line are horizontally cutted  
Run Code Online (Sandbox Code Playgroud)

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

range01.value = a & b
range01.EntireRow.AutoFit  //  works !!!  Thanks to Microsoft !
Run Code Online (Sandbox Code Playgroud)

Jos*_*eph 12

确保其中包含换行符的单元格已打开"自动换行".您可以使用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
Run Code Online (Sandbox Code Playgroud)


Jul*_*ørk 5

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

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

像这样的东西:

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
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!知道自动调整不适用于合并单元格非常有用。合并细胞是魔鬼的发明。 (2认同)