学习Excel技术,关注微信公众号:
excelperfect
Excel
中有一个“自动调整列宽”功能,选择单元格或单元格区域或全部单元格后,单击功能区“开始”选项卡“单元格”组中的“格式——自动调整列宽”,可以将超出默认或设置的列宽的列调整为适应输入的文本的长度。
然而,如果某列或某些列中的文本太长,则会破坏工作表的整体观感,我们可以限制这些列在调整时不能超过某个宽度。使用
VBA
来实现,代码如下:
Sub AutoFitAllColumns()
Dim c As Long
Dim ws As Worksheet
Dim lnumCols As Long
Dim lMaxWidth As Long
Set ws = ActiveSheet
lnumCols = ws.UsedRange.Columns.Count
lMaxWidth = 35
With ws
.Columns.AutoFit
For c = 1 To lnumCols
If .UsedRange.Columns(c).ColumnWidth > lMaxWidth Then
.UsedRange.Columns(c).ColumnWidth = lMaxWidth
End If
Next c
End With
Set ws = Nothing
End Sub
也可以将上述代码转换为自定义函数,让用户指定要自动调整列宽的工作表及最大调整的列宽宽度。代码如下:
Function AutoFitAllColumns(ws As Worksheet, lMaxWidth As Long)
Dim c As Long
Dim lnumCols As Long
lnumCols = ws.UsedRange.Columns.Count
With ws
.Columns.AutoFit
For c = 1 To lnumCols
If .UsedRange.Columns(c).ColumnWidth > lMaxWidth Then
.UsedRange.Columns(c).ColumnWidth = lMaxWidth
End If
Next c
End With
End Function
Sub test()
AutoFitAllColumns Sheet1, 60
End Sub
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。