学习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
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。