Как сделать функцию Excel "Auto Fit Row Height" на самом деле автоматически соответствовать высоте строки?

для каждого поколения Excel, которое я помню (включая 2010 год, который я использую сейчас), функции Excel "Auto Size Row" иногда не могут автоматически определять размер строки, когда ячейка содержит обернутый текст. Когда он работает должным образом, весь текст раскрывается и нет дополнительного пространства ниже последней строки текста. Когда это не удается, он добавляет дополнительное пространство под текстом. Хуже того, то, что вы видите, не всегда то, что вы получаете, т. е. текст, который появился на экране, обрезается, когда он напечатанный. Вы также получаете различные размеры в зависимости от того, увеличено/уменьшено или фактический размер.

простой тест:

Почему после текста в ячейке A1 есть однострочный пробел, но не в A2?

(для воспроизведения: установите ширину столбца A до 17,14 (125 пикселей), Обтекание текстом и выравнивание ячеек сверху.)

(Я дважды проверил, что применил высоту строки Auto Fit к обеим строкам. Уровень масштабирования 100%.)

Auto Fit fails for the first row, succeeds for the second

есть ли какое-либо известное средство для этого, не прибегая к ручному регулированию высот строк (что непрактично для более чем нескольких строк)?

24
задан devuxer
15.11.2022 15:44 Количество просмотров материала 3344
Распечатать страницу

16 ответов

способ я нашел (развивая предыдущий пост немного):

  • выделить весь лист.
  • изменить размер столбца немного шире (потому что весь лист выделен, все колонки станут шире)
  • дважды щелкните разделитель строк-высота строки будет автоматически установлена
  • дважды щелкните разделитель столбцов ширина столбцов будет автоматически установлена

вуаля!

97
отвечен Nick Carrington 2022-11-16 23:32

WYSIWYG Excel не самый лучший. В вашей картинке, кот. едва пробирается в 5-ю линию. Если вы уменьшите масштаб, чтобы на все 100% (99% к примеру.) потом кошка.'теперь завернутый до 6-й линии. Я думаю, что Excel пытается автоматически вписаться таким образом, чтобы все было почти всегда видно независимо от вашего уровня масштабирования.

Это не единственная проблема, которую вы будете иметь с AutoFit. Кроме того, как перенос сотового печати не всегда матч, что вы видите на экране. Возьмите свой пример и измените шрифт на Courier, оставив размер в 11.

Changed font to Courier

Как вы можете видеть, ячейке A1 дается 1,5 дополнительных строки. Теперь посмотрите на предварительный просмотр, ' cat.- это полностью скрыто.

print preview of same file

по моему опыту, Excel имеет эту проблему с определенными шрифтами и размерами шрифтов больше, чем другие. Courier хуже Курьер Новая, размер 11 обычно хуже, чем 10 или 12. (Почему они выбрали размер 11 в качестве нового по умолчанию, я понятия не имею.)

13
отвечен mischab1 2022-11-17 01:49

Я просто написал небольшой макрос для этой цели. Я назначил ему ярлык (Ctrl-Shift-J), и он работает как шарм для меня.

Sub ArrangeTable()
'set proper column width and row height for the current region
    With Selection.CurrentRegion
        .Columns.ColumnWidth = 200
        .Columns.EntireColumn.AutoFit
        .Rows.EntireRow.AutoFit
    End With
End Sub

чтобы сделать это постоянно доступны, вы можете легко сделать автоматически загрузки надстройки:

  • создайте модуль в новой пустой книге и вставьте код,
  • назначьте ему комбинацию клавиш,
  • затем Save As,Add-in в папке %appdata%\Microsoft\Excel\XLSTART

    Таким образом, это будет невидимо загружается при каждом запуске Excel.
2
отвечен Patrick Honorez 2022-11-17 04:06

в некоторых случаях проблема дополнительного пространства в некоторых строках после вызова "AutoFit row Height" может заключаться в том, что скрытый столбец обернул текст в этих строках.

0
отвечен BobO 2022-11-17 06:23

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

0
отвечен Andrew Buchanan 2022-11-17 08:40

есть простое решение:

1) Выберите все строки, которые вы хотите автоформат (если это большой блок нажмите на первый, а затем нажмите Shift + конец и Shift+вниз)

2) щелкните правой кнопкой мыши на выделение, Формат ячеек, вкладка выравнивание, снимите флажок перенос текста.

надеюсь, что это помогает ;)

0
отвечен Pedro 2022-11-17 10:57

У меня Excel 2010. Я обнаружил, что эта проблема произошла со мной, когда Мои настройки масштабирования не было на 100%. Пока я нахожусь на 100%, я не получаю текст, отрезанный с помощью AutoFit для столбцов и строк

0
отвечен Kevin Morin 2022-11-17 13:14

есть статьи на этом, что "предполагает" (это неприемлемо редко, в классическом стиле Microsoft), что если вы когда-нибудь установите высоту строки, автоматическая настройка высоты навсегда исчезнет для этой строки этого листа. Строки, высота которых вы не коснулись, будут автоматически заполняться.

хотя вы можете сбросить ширину столбцов с параметром "стандартная ширина" в 2003 году (madman-designed 2007: изменить на "ширину по умолчанию"), но они забыли (снова) (и снова) поставить что в течение строк. Так что постоянство кажется неизбежным. Это означает, что если у вас есть высота по умолчанию 15, и вы создаете лист и устанавливаете все высоты на 12, вы просто утратили автоматическую автофиксацию.

0
отвечен GatesIsAntichrist 2022-11-17 15:31

иногда ядерный метод для того чтобы зафиксировать misbehaving autoproblems.

то, что я делаю, это Скопировать текст из каждой ячейки и вставить данные в блокнот, а затем удалить строку. Затем я сразу же копирую и вставляю пустую строку, но с тем же форматированием и хорошим поведением, что и удаленная строка. (Необходимо скопировать и вставить всю строку с помощью левой кнопки подряд.)

Как только это будет сделано, вы должны вернуться назад и вставить текст из блокнота в каждый клетка. (Используйте F2 или иным образом активировать режим редактирования каждой ячейки перед вставкой текста.) Это боль, так что это крайняя мера, особенно для ginormeously широкие листы.

Это единственное решение иногда, так как проблема находится в самой программе.

0
отвечен Paul 2022-11-17 17:48

Я не полностью проверил это, но это работает для меня. По существу, он автоматически отрегулирует все листы, а затем вернется и установит ширину столбца на исходную ширину, если она не была расширена автоматической настройкой. У меня было только 10 столбцов и не более 1000 строк так поменяйте код по мере необходимости.

Sub ResizeCells()
    Dim sheetCounter As Integer
    Dim rowCounter As Integer
    Dim colCounter As Integer
    Dim totalWidth As Double
    Dim oldColWidths(1 To 10) As Double

    For sheetCounter = 1 To ThisWorkbook.Sheets.Count
        ActiveWorkbook.Worksheets(sheetCounter).Select
        totalWidth = 0

        ' Extend the columns out to 200
        For colCounter = 1 To 10
            oldColWidths(colCounter) = Cells(1, colCounter).ColumnWidth
            totalWidth = totalWidth + oldColWidths(colCounter)
            Cells(1, colCounter).ColumnWidth = 200
        Next

        For rowCounter = 4 To 1000
            If Cells(rowCounter, 1).Value <> "" Or Cells(rowCounter, 2).Value <> "" Or Cells(rowCounter, 3).Value <> "" Then
                Rows(rowCounter & ":" & rowCounter).EntireRow.AutoFit
            End If
        Next

        ' do autofit
        For colCounter = 1 To 10
            Cells(1, colCounter).EntireColumn.AutoFit
        Next

        ' reset to original values if current width is less than the original width.
        For colCounter = 1 To 10
            If Cells(1, colCounter).ColumnWidth < oldColWidths(colCounter) + 0.25 Then
                Cells(1, colCounter).ColumnWidth = oldColWidths(colCounter)
            End If
        Next
    Next
End Sub
0
отвечен Dan Williams 2022-11-17 20:05

перефразируя Dunc:

Я решил аналогичную проблему:

  1. выбор всей таблицы.

  2. дважды щелкните строку в поле между двумя строками.

специально для решения вашей проблемы с этой дополнительной строкой я бы предположил, что там есть персонаж. Это может быть не видимый персонаж, но там определенно что-то есть.

-1
отвечен wizlog 2022-11-17 22:22

Я не нашел времени, чтобы прочитать другие комментарии. Почему линии в нижней части первого блока, а не во втором блоке?

Это потому, что текст заканчивается слишком близко к правому краю ячейки. Если вы отрегулируете столбец немного шире и дважды щелкните между строками, он будет соответствующим образом изменен.

-1
отвечен Renier Wessels 2022-11-18 00:39

выберите все ячейки и дважды щелкните строку, разделяющую строки... это произойдет автоматически.

-1
отвечен paul 2022-11-18 02:56

моя гипотеза заключается в том, что Excel получает завязывают, когда он должен расширить слишком много линий. У меня был подобный опыт выше. Это выглядит как будто в конце есть дополнительный NL/CR/LF, но я знаю, что нет. Если я создаю ячейку несколько символов за раз, она автоматически форматирует OK до достижения определенного размера, а затем помещает дополнительную строку. (Аналогичное поведение в обратном направлении происходит, если вы начинаете с удаления некоторых символов.) Это происходит в разное время с разными тельца.

облом!

Если вы can расширьте ширину ячейки, вы, вероятно, можете избежать проблемы. Если вы не можете (как в моем случае) вы застряли с ручным форматированием. Как я уже сказал, " облом!"

-1
отвечен GeoffH 2022-11-18 05:13

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

-1
отвечен phipywr 2022-11-18 07:30

Что сработало для меня (Excel 2010), было удалить сто или около того неиспользуемых столбцов справа от моих данных. Я могу только догадываться, что там было что-то, из-за чего высота автоматического ряда плохо себя вела.

-2
отвечен Runk 2022-11-18 09:47

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх