2016-10-14 10 views
1

Я искал ответы на несколько вопросов несколько раз, но я никогда не встречал аналогичный вопрос. Каждый всегда хочет знать, как настроить ширину столбцов, это легко, у меня есть гораздо более тонкий вопрос.Автоматическая настройка ширины столбцов в Excel при исключении определенных ячеек/строк

Я люблю автоматическую настройку, делает чисто выглядящие таблицы и гарантирует, что все будет видно (aka; ctrl-a, двойной щелчок вверху между столбцами), но если у вас есть одна ячейка с длинным фрагментом текста (например, заметки в нижней части таблицы), он делает этот столбец шириной в 400 пикселей для захвата всего текста, когда я просто хотел его обновить для каждого заголовка столбца или данных таблицы. Я бы хотел, чтобы эта текстовая ячейка была помечена значком excel для автоматической настройки.

Если вы в порядке с Центрированием, вы можете установить выравнивание ячеек (и 1 ячейку справа) на «Центр по выбору», и оно будет проигнорировано. Но, как и в моем примере выше, я часто хочу, чтобы этот текст был оправдан влево или вправо, не позволяя C.A.S. работать.

Неужели кто-нибудь смог это сделать?

+0

Я обнаружил, что, по крайней мере, в Office 2016 они реализовали команду, которая в основном именно то, что я хотел. Главная страница -> Ячейки -> Формат -> AutoFitColumnWidths (Alt-> H O I). Вы можете выбрать определенные строки или некоторые ячейки и т. Д. И использовать эту команду для автоматической настройки выделенных столбцов только выделенными ячейками. – kindlin

ответ

0

Если вы согласны с решением VBA, вы можете написать обычную процедуру для этого. В этом примере, если вы передаете диапазон, который вы хотите «Автоподбор Только заголовки», он будет существенно скопировать заголовок в чистую клетку, запустить AUTOFIT, а затем применить эту autofitted ширину вашей колонки:

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

 Смежные вопросы

  • Нет связанных вопросов^_^