Excel中的自动调整大小和自动包装

时间:2017-03-22 19:00:36

标签: excel vba

所以我正在寻找一些方法来自动包装我的Excel文档中的文本,可能基于每行的字符数。

我还想让我的单元格继续自动调整大小,我已经使用了以下VBA代码:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = False
For Each Value In Target.Columns
    Worksheets(Sh.Name).Columns(Value.Column).AutoFit
Next Value
Application.ScreenUpdating = True
End Sub

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是你在找什么?

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = False
Dim Val As Range
For Each Val In Target.Columns
    Worksheets(Sh.Name).Columns(Val.Column).AutoFit
    If Len(Val) > 150 Then
        Val.WrapText = True
    End If
Next Value
Application.ScreenUpdating = True
End Sub

注意:我建议不要使用Value作为变量,因为它是VBA中的“保留字”。我还假设Value是一个单元格,因此我将其定义为Range。它将检查Value是否超过150个字符,如果是,则包装文本。

如果这不起作用,这里有一种检查单元格是否超过150个字符的一般方法,如果是,则换行文字:

Sub autoFitCell()
Dim cel As Range
Set cel = Range("A1")
If Len(cel) > 150 Then
    cel.WrapText = True
End If
End Sub