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

时间:2016-08-30 19:01:44

标签: excel vba excel-vba width

根据其中的数据自动调整列下方的代码,即使仅为包含列名的第一行选择了“范围”。

让我们考虑Sheet具有所需Sheet的句柄。我希望从C到F的列能够自动调整。

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

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

我希望看到完整的列名,而无需手动调整大小。

1 个答案:

答案 0 :(得分:1)

将单元格值和格式从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

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