所以我正在寻找一些方法来自动包装我的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
有什么想法吗?
答案 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