Автоподбор высоты ряда не работает

Итак, сегодня у меня плохой день
Я обнаружил, что функция автоматической подгонки строк в Excel — не работает

  a = "Пожалуйста" b = "  Сделайте AutoFit "range01.Value = a & vbNewLine & b range01.EntireRow.AutoFit//Первая и последняя строка обрезаны по горизонтали  

Chr (10) вместо vbNewLine — не help
Работает, только если я пишу без разрывов строк:

  range01.value = a & brange01.EntireRow.AutoFit//работает !!!  Спасибо Microsoft!  

Убедитесь, что в ячейках с разрывами строки включен параметр «Перенос текста». Вы можете включить его с помощью VBA следующим образом:

  Sub test1 () Dim a As String, b As String a = "Please" b = "Do AutoFit" Range ("  A1 "). Value = a & vbNewLine & b Range (" A1 "). WrapText = True Range (" A1 "). CompleteRow.AutoFitEnd Sub  

Автоподбор не работает для объединенных ячеек. Я предполагаю, что это именно то, что вы пытаетесь сделать.

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

Примерно так:

  Dim YourString As String, a As String, b As StringDim TempLoc as Rangea = "Please" b = "Do AutoFit" YourString  = a & vbNewLine & bSet TempLoc = range01.offset (0, 10) 'Учитывая, что столбец 10 справа имеет тот же самый witdh, что и ваша объединенная ячейка.'  Автоподбор одной ячейки для получения правильной высоты с помощью TempLoc .Value = YourString .WrapText = True .EntireRow.AutoFit .RowHeight = TempLoc.RowHeight .ClearContentsEnd With  


Автоподбор не работает для объединенных ячеек. Я предполагаю, что это именно то, что вы пытаетесь сделать.

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

Примерно так:

  Dim YourString As String, a As String, b As StringDim TempLoc as Rangea = "Please" b = "Do AutoFit" YourString  = a & vbNewLine & bSet TempLoc = range01.offset (0, 10) 'Учитывая, что столбец 10 справа имеет тот же самый witdh, что и ваша объединенная ячейка.'  Автоподбор одной ячейки для получения правильной высоты с помощью TempLoc .Value = YourString .WrapText = True .EntireRow.AutoFit .RowHeight = TempLoc.RowHeight .ClearContentsEnd With  

Вы можете:

  Листы Private Sub Worksheet_Activate () ("Sheet1"). Range ("A: A"  ) .EntireRow.AutoFitEnd Sub  


Вы можете сделать:

  Частный  Sub Worksheet_Activate () Worksheets ("Sheet1"). Диапазон ("A: A"). WholeRow. AutoFitEnd Sub  

Я решил проблему с этим — у меня была строка с двумя объединенными ячейками оба содержат многострочный текст с переводом строки Chr (10) — с включенным Wrap (но на самом деле строки не переносятся — только Chr (10) вызывают новые строки). Автоподбор не работал из-за объединенных ячеек.

Обходной путь VBA заключался в использовании запасной ячейки в той же строке и заполнении ее тем же числом Chr (10), что и в одной (либо) из многострочных ячеек. Затем вызовите автоподбор для этой ячейки, теперь содержащей такое же количество невидимых переводов строки. Убедитесь, что шрифт и размер в резервной ячейке совпадают!

  'сделать так, чтобы в резервной ячейке C36 было такое же количество Chr (10  ) как D36, используя функцию Repeat: '(после подсчета Chr (10) путем сравнения длины до и после замены Chr (10) на "") Worksheets (1) .Range ("C36"). Value = _ Application.  WorksheetFunction.Rept (Chr (10), _ Len (Worksheets (1) .Range ("D36"). Value) - Len (Replace (Worksheets (1) .Range ("D36"). Value, Chr (10),  ""))) Рабочие листы (1). Диапазон ("C36"). Rows.AutoFit  

Альтернативным методом для других сценариев может быть использование дополнительного скрытого рабочего листа — установите для одной ячейки ту же ширину столбца, что и ваши объединенные ячейки, скопируйте содержимое, вызовите функцию автозаполнения (которая должна работать с объединенной ячейкой), затем используйте полученную высоту строки из этой ячейки.


Я решил проблему с этим — у меня была строка с двумя объединенными ячейками, каждая из которых содержала multi-l текст с переводом строки Chr (10) — с включенным Wrap (но на самом деле строки не переносятся — только Chr (10) вызывают новые строки). Автоподбор не работал из-за объединенных ячеек.

Обходной путь VBA заключался в использовании запасной ячейки в той же строке и заполнении ее тем же числом Chr (10), что и в одной (либо) из многострочных ячеек. Затем вызовите автоподбор для этой ячейки, теперь содержащей такое же количество невидимых переводов строки. Убедитесь, что шрифт и размер в резервной ячейке совпадают!

  'сделать так, чтобы в резервной ячейке C36 было такое же количество Chr (10  ) как D36, используя функцию Repeat: '(после подсчета Chr (10) путем сравнения длины до и после замены Chr (10) на "") Worksheets (1) .Range ("C36"). Value = _ Application.  WorksheetFunction.Rept (Chr (10), _ Len (Worksheets (1) .Range ("D36"). Value) - Len (Replace (Worksheets (1) .Range ("D36"). Value, Chr (10),  ""))) Рабочие листы (1). Диапазон ("C36"). Rows.AutoFit  

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


Один из способов обхода проблемы — немного уменьшить ширину столбца для столбца (столбцов), которые вызывают Проблема автозаполнения, выберите все строки, которые вы хотите изменить, автоматически установите высоту строки, дважды щелкнув один из разделителей строк, и, наконец, автоматически заполните столбцы с первого шага, дважды щелкнув разделители столбцов. Вероятно, лучше всего работает, если только один или несколько столбцов постоянно содержат наибольшее количество текста в своих ячейках.


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

Оцените статью
techsly.ru
Добавить комментарий