根据第1行中的列名自动调整Excel列宽

即使仅为包含列名的第一行select了范围,下面的代码也会根据其中的数据自动适合列。

让我们考虑表单具有所需表单的句柄。 我想从C到F的列自动适应。

Sheet.Range("C1:F1").Columns.AutoFit 

参考: https : //msdn.microsoft.com/en-us/library/office/ff820840.aspx

我希望看到完整的列名称,而不需要手动resize。

将单元格值和格式从C1:F1复制到右侧未使用的列,然后使用Range.AutoFit 。 使用调整后的宽度设置原稿的列宽。

 Dim c As Long, cc As Long With Worksheets("Sheet1") cc = .Cells(1, .Columns.Count).End(xlToLeft).Column + 1 For c = 3 To 6 .Cells(1, c).Copy Destination:=.Cells(1, cc) .Columns(cc).AutoFit .Columns(c).ColumnWidth = .Columns(cc).ColumnWidth Next c .Columns(cc).Cells.Clear End With 

这将仅根据格式化的标题行调整每个列的宽度。