2016-10-14 56 views
1

我已經找過多次查找相關問題,但我從未發現過類似的問題。每個人都想知道如何調整列寬,這很容易,我有更多細微的問題。在Excel中自動調整列寬,同時排除某些單元格/行

我喜歡自動調整,使清潔的表格,並確保一切都可見(aka; ctrl-a,雙擊列之間的頂部),但如果你有一個單元格與一長文本(如筆記在表格的底部),它使得該列像400像素寬,以捕獲整個文本,當我只是希望它根據我的列標題或表格數據進行更新時。 我希望能夠標記這個文本單元格被excel忽略自動調整。

如果您可以將它置於居中位置,那麼您可以將該單元格對齊(並將右側的單元格設置爲1)爲「居中選擇」並將其忽略。但是,就像我上面的例子一樣,我經常希望這個文本是向左或向右,不允許C.A.S.。上班。

有沒有人能夠做到這一點?

+0

我發現,至少在Office 2016中,他們已經實現了一個基本上正是我想要的命令。首頁 - >單元格 - >格式 - > AutoFitColumnWidths(Alt-> H O I)。您可以選擇某些行或某些單元格等,然後使用該命令僅通過突出顯示的單元格自動調整高亮列。 – kindlin

回答

0

如果您對VBA解決方案沒有問題,可以編寫自定義例程來執行此操作。在這個例子中,如果傳遞的範圍內要「自動調整僅郵件頭,」它基本上將頭複製到一個乾淨的電池,運行自動調整,然後是自動擬合寬度適用於你的專欄:

Sub AutoFitHeader(HeaderRow As Range) 

    Dim col As Range 
    Dim ws As Worksheet 
    Set ws = ActiveWorkbook.Worksheets.Add 
    ws.Visible = xlSheetHidden 

    Application.DisplayAlerts = False 

    For Each col In HeaderRow 
    ws.Range("A1").Value = col.Value 
    ws.Columns("A").AutoFit 

    col.EntireColumn.ColumnWidth = ws.Columns("A").ColumnWidth 
    Next col 

    ws.Delete 

    Application.DisplayAlerts = True 

End Sub 

而且然後這樣稱呼它:

AutoFitHeader Range("A1:H1") 
+0

這可能幾乎是最好的解決方案,但我有幾個問題。這可以擴展到2d的範圍,所以我會突出我的整個表,而不是一個單一的行?或者,誠實地說,反過來是優選的,「自動適應不在單元格X Y或Z中的所有數據」(或者範圍A13:H20)?然後,你如何真正運行它?你是否稱它爲一個單元格中的UDF?或者是否有VBA運行空間,您需要輸入VBA查看命令「AutoFitHeader Range(」X:Z')「? – kindlin