2016-08-30 129 views
2

即使僅爲包含列名的第一行選擇了範圍,下面的代碼也會根據其中的數據自動適合列。根據行1中的列名自動調整Excel列寬

讓我們考慮該工作表具有所需工作表的句柄。我想從C到F的列自動適應。

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

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

我想看到完整的列名,而不需要手動調整的。

+0

我不明白,你只需要C1:F1自動調整,或者整列(C:F)? –

+0

我希望整個列是基於我的列名寬度自動調整的,因爲它們的最大長度大於數據。我試過Sheet.Range(C:F).Columns.AutoFit。它沒有工作。 – newuser

回答

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 

這將根據格式化標題行僅調整每列寬度。

+0

謝謝你的回覆。我在VBA中仍然是新手。請讓我知道這條線是什麼意思:cc = .Cells(1,.Columns.Count).End(xlToLeft).Column + 1 – newuser

+0

它找到從右到左的第一個空列。空列用作總計以使用.AutoFit計算列寬。 – Jeeped

+0

非常感謝! – newuser