Note: The other languages of the website are Google-translated. Back to English

Как автоматически подогнать высоту строки объединенных ячеек в Excel?

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

Автоматическая установка высоты строки объединенных ячеек с кодом VBA

Вкладка Office позволяет редактировать и просматривать в Office с вкладками и значительно упрощает работу ...
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
  • Повторное использование чего угодно: Добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Более 20 текстовых функций: Извлечь число из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния: Несколько книг и листов в одну; Объединить несколько ячеек / строк / столбцов без потери данных; Объедините повторяющиеся строки и сумму.
  • Разделить инструменты: Разделение данных на несколько листов в зависимости от ценности; Из одной книги в несколько файлов Excel, PDF или CSV; От одного столбца к нескольким столбцам.
  • Вставить пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона; Отправляйте персонализированные электронные письма нескольким получателям массово.
  • Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, периодичности и др .; Фильтр жирным шрифтом, формулы, комментарий ...
  • Более 300 мощных функций; Работает с Office 2007-2021 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

стрелка синий правый пузырь Автоматическая установка высоты строки объединенных ячеек с кодом VBA

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

doc-autofit-merged-ячейки-1

1. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

Код VBA: автоматическая установка высоты строки из нескольких объединенных ячеек
Option Explicit
Public Sub AutoFitAll()
  Call AutoFitMergedCells(Range("a1:b2"))
   Call AutoFitMergedCells(Range("c4:d6"))
    Call AutoFitMergedCells(Range("e1:e3"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
  Dim tHeight As Integer
  Dim iPtr As Integer
  Dim oldWidth As Single
  Dim oldZZWidth As Single
  Dim newWidth As Single
  Dim newHeight As Single
  With Sheets("Sheet4")
    oldWidth = 0
    For iPtr = 1 To oRange.Columns.Count
      oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
    Next iPtr
    oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth
    oRange.MergeCells = False
    newWidth = Len(.Cells(oRange.Row, oRange.Column).Value)
    oldZZWidth = .Range("ZZ1").ColumnWidth
    .Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth)
    .Range("ZZ1").WrapText = True
    .Columns("ZZ").ColumnWidth = oldWidth
    .Rows("1").EntireRow.AutoFit
    newHeight = .Rows("1").RowHeight / oRange.Rows.Count
    .Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight
    oRange.MergeCells = True
    oRange.WrapText = True
    .Range("ZZ1").ClearContents
    .Range("ZZ1").ColumnWidth = oldZZWidth
  End With
End Sub

Ноты:

(1.) В приведенном выше коде вы можете добавлять новые диапазоны, просто скопируйте Вызов AutoFitMergedCells (Range ("a1: b2")) скрипт столько раз, сколько захотите, и измените диапазоны объединенных ячеек по своему усмотрению.

(2.) И вы должны изменить имя текущего рабочего листа. Sheet4 к имени используемого вами листа.

3, Затем нажмите F5 ключ для запуска этого кода, и теперь вы можете видеть, что все объединенные ячейки были автоматически подогнаны под их содержимое, см. снимок экрана:

doc-autofit-merged-ячейки-1


Связанная статья:

Как автоматически подогнать ширину столбца в Excel?


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно

<p >


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
</ p >

Сортировать комментарии по
Комментарии (26)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Этот код вызывает удаление дополнительных строк. У меня есть числа с левой стороны, а столбцы рядом с ними представляют собой объединенные/обернутые данные. Например, в описании работы перечислите обязанности с номерами, за которыми следует объяснение обязанностей. есть идеи? Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Я ввел следующее, но получаю сообщение об ошибке "Ошибка времени выполнения "13": несоответствие типов" Помощь? Опция Explicit Public Sub AutoFitAll() Вызов AutoFitMergedCells(Range("a8:h8")) Вызов AutoFitMergedCells(Range("a10:h10")) Вызов AutoFitMergedCells(Range("a11:h11")) Вызов AutoFitMergedCells(Range("b17") :h17")) Вызов AutoFitMergedCells(Range("b22:h22")) Вызов AutoFitMergedCells(Range("b24:h24")) Вызов AutoFitMergedCells(Range("a26:h26")) Вызов AutoFitMergedCells(Range("a28:h28") ")) End Sub Public Sub AutoFitMergedCells(oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight As Single With Sheets ("Письмо с предложением") oldWidth = 0 For iPtr = 1 To oRange.Columns.Count oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth Next iPtr oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange. Столбец + 1).ColumnWidth oRange.MergeCells = False newWidth = Len(.Cells(oRange.Row, oRange.Column).Value) oldZZWidth = .Range("ZZ1").ColumnWidth .Range("ZZ1") = Left( .Cells(oRange.Row, oRange.Column).Значение, n ewWidth).Range("ZZ1").WrapText = True .Columns("ZZ").ColumnWidth = oldWidth .Rows("1").EntireRow.AutoFit newHeight = .Rows("1").rowHeight / oRange.Rows .Count .Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).rowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Range("ZZ1 ").ClearContents .Range("ZZ1").ColumnWidth = oldZZWidth End With End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо за код! Наконец-то это работает, но... Моя высота строки становится слишком высокой. Есть ли решение для? Большое спасибо! Это мой код: Опция Explicit Public Sub AutoFitAll() Вызов AutoFitMergedCells(Range("b162:i162")) Вызов AutoFitMergedCells(Range("b166:i166")) Вызов AutoFitMergedCells(Range("b168:i168")) Вызов AutoFitMergedCells(Range("b170) :i170")) Вызов AutoFitMergedCells(Range("b172:i172")) End Sub Public Sub AutoFitMergedCells(oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight As Single With Sheets("Rapport") oldWidth = 0 For iPtr = 1 To oRange.Columns.Count oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth Next iPtr oldWidth = .Cells(1, oRange .Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth oRange.MergeCells = False newWidth = Len(.Cells(oRange.Row, oRange.Column).Value) oldZZWidth = .Range("ZZ1" ).ColumnWidth .Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth) .Range("ZZ1").WrapText = True .Columns("ZZ").ColumnWidth = oldWidth .Rows("1").EntireRow.AutoFit newHeight = . Rows("1").RowHeight / oRange.Rows.Count .Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Range("ZZ1").ClearContents .Range("ZZ1").ColumnWidth = oldZZWidth End With End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Даниэль, я столкнулся с той же проблемой при повторном запуске макроса в первой строке. В коде используется .Rows("1").EntireRow.AutoFit (строка 26), и если вы запускаете, скажем, A1:B1, в вашей ячейке A1 WordWrapping включен из строки 30. Кажется, самым простым решением является переключение WordWrapping выключено в начале саб. Добавьте oRange.WrapText = True между строками 13 и 14, и все будет в порядке.
Этот комментарий был сведен к минимуму модератором на сайте
Поскольку «вспомогательная» ячейка ZZ1 использует первую строку (столбец ZZ, строка 1), если в строке 1 есть ЧТО-НИБУДЬ выше, чем текст в строке, которую вы хотите настроить, ваша результирующая высота будет выше, чем вы хотите . Чтобы исправить это, я сделал вспомогательную ячейку той же колонкой, что и первая колонка в oRange, и установил номер строки на самую последнюю строку в Excel. Надеюсь, это поможет вам, как и мне. 8) Мой код: Option Explicit Public Sub AutoFitAll() Call AutoFitMergedCells(Range("A2:Z2")) End Sub Public Sub AutoFitMergedCells(oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight как один с листами («Лист1») oldWidth = 0 для iPtr = 1 в oRange.Columns.Count oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth Next iPtr oldWidth = .Cells(1 , oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth oRange.MergeCells = False newWidth = Len(.Cells(oRange.Row, oRange.Column).Value) oldZZWidth = .Cells(" 1048576", oRange.Column).ColumnWidth .Cells("1048576", oRange.Column) = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth) .Cells("1048576", oRange.Column) .WrapText = True .Columns(oRange.Column).ColumnWidth = oldWidth .Rows("1048576").EntireRow.AutoFit newHeight = .Rows("1048576").RowHeight / oRange.Rows.Count .Rows(CStr(oRange. Row) & ":" & CStr(oRange.Row + oRange.Rows.Co unt - 1)).RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Cells("1048576", oRange.Column).ClearContents .Cells("1048576", oRange.Column).ColumnWidth = oldZZWidth End With End Саб
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо за код! У меня такая же проблема с этим кодом, например DANIËLLE_01.
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за код, почти то что нужно. Два замечания, однако: 1) когда я запускаю макрос в той же строке, что и «вспомогательная» ячейка (ZZ1), автоподбор (строка 26) испортится, потому что вся строка помещается в одну узкую ячейку. Я рекомендую добавить oRange.WrapText = False в начале (или переместить вспомогательную ячейку куда-нибудь в сторону, если это возможно). 2) какова цель строки 19? Вы вводите oldWidth в строках 16-18, но затем переопределяете вычисление в строке 19, используя только два столбца. Когда я попробовал подпрограмму на объединенных ячейках шириной в три столбца, он работал лучше, когда я игнорировал строку... Еще раз спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо за код. Есть ли способ заставить макрос запускаться, как только вы вводите текст в поле и нажимаете Enter?
Этот комментарий был сведен к минимуму модератором на сайте
Блестяще, но точно такая же проблема, как у Даниэллы, теперь ряды слишком высокие. Пожалуйста, помогите!
Этот комментарий был сведен к минимуму модератором на сайте
Работает отлично, но строки слишком высокие! Можем ли мы это исправить?
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, что опубликовали это, я неплохо разбираюсь в Excel и обычно могу разобраться со своими настройками, но я не могу найти решение проблемы, с которой я столкнулся, или если она вообще существует. У меня есть огромные объемы данных в ячейках (превышающие предел высоты одной ячейки 409.5). Проблема в том, что этот VBA работает с тем же ограничением. Таким образом, некоторые из моих данных обрезаются, даже если строки объединены, а общая высота ячейки составляет 819, поскольку VBA регулирует высоту ячейки на основе одной ячейки ZZ1. Можно ли каким-либо образом настроить код, чтобы он позволял скорректированной высоте ячейки включать доступную высоту в объединенных строках, или я прошу невозможного? Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за код. Тем не менее, высота моих строк регулируется, но теперь этого достаточно. Как я могу это исправить?
Этот комментарий был сведен к минимуму модератором на сайте
Поскольку «вспомогательная» ячейка ZZ1 использует первую строку (столбец ZZ, строка 1), если в строке 1 есть ЧТО-НИБУДЬ выше, чем текст в строке, которую вы хотите настроить, ваша результирующая высота будет выше, чем вы хотите . Чтобы исправить это, я сделал вспомогательную ячейку той же колонкой, что и первая колонка в oRange, и установил номер строки на самую последнюю строку в Excel. Надеюсь, это поможет вам, как и мне. 8) Мой код: Option Explicit Public Sub AutoFitAll() Call AutoFitMergedCells(Range("A2:Z2")) End Sub Public Sub AutoFitMergedCells(oRange As Range) Dim tHeight As Integer Dim iPtr As Integer Dim oldWidth As Single Dim oldZZWidth As Single Dim newWidth As Single Dim newHeight как один с листами («Лист1») oldWidth = 0 для iPtr = 1 в oRange.Columns.Count oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth Next iPtr oldWidth = .Cells(1 , oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth oRange.MergeCells = False newWidth = Len(.Cells(oRange.Row, oRange.Column).Value) oldZZWidth = .Cells(" 1048576", oRange.Column).ColumnWidth .Cells("1048576", oRange.Column) = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth) .Cells("1048576", oRange.Column) .WrapText = True .Columns(oRange.Column).ColumnWidth = oldWidth .Rows("1048576").EntireRow.AutoFit newHeight = .Rows("1048576").RowHeight / oRange.Rows.Count .Rows(CStr(oRange. Row) & ":" & CStr(oRange.Row + oRange.Rows.Co unt - 1)).RowHeight = newHeight oRange.MergeCells = True oRange.WrapText = True .Cells("1048576", oRange.Column).ClearContents .Cells("1048576", oRange.Column).ColumnWidth = oldZZWidth End With End Саб
Этот комментарий был сведен к минимуму модератором на сайте
Мой код даже не запустится. Я просто получаю ошибку компиляции, когда пытаюсь вызвать AutoFitMergedCells — ожидаемую функцию или переменную?
Этот комментарий был сведен к минимуму модератором на сайте
Я пытаюсь понять необходимость строки 19. Вы снова присваиваете значение OldWidth. Не могли бы вы объяснить?
Этот комментарий был сведен к минимуму модератором на сайте
Я сделал надстройку для автоматической подгонки высоты строки из нескольких объединенных ячеек.
Пожалуйста, используйте это, если вы хотите автоматически подобрать высоту строки.
[Выпуск версии 2.6 · toowaki/AutoFitRowEx · GitHub]
https://github.com/toowaki/AutoFitRowEx/releases/tag/2.6.2
Этот комментарий был сведен к минимуму модератором на сайте
Это очень полезно, спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Я считаю, что причина того, что высота строк не рассчитывается должным образом, связана с этими строками кода.
Для iPtr = 1 To oRange.Columns.Count
oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
Следующий iPtr
oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth

Переменная OldWidth устанавливается равной сумме ширин столбцов в диапазоне, но по какой-то причине она сбрасывается только до ширины первых двух столбцов. Таким образом, первые 3 строки кода становятся избыточными из-за 4-й строки. Когда я удалил строку, все стало намного лучше, но другая проблема, которую я обнаружил, заключалась в том, что вы должны убедиться, что шрифт и размер шрифта временной ячейки (ZZ1 в примере кода) должны соответствовать шрифту и размеру объединенных ячеек. ; в противном случае текст не будет обтекаться так же, как обтекание объединенных ячеек, и может иметь неправильную высоту.
Этот комментарий был сведен к минимуму модератором на сайте
не работает, пароль, установленный в вашем коде, не работает в вашем коде
Этот комментарий был сведен к минимуму модератором на сайте
Это не работает для меня}
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, что помогли мне с листом, которым я не был доволен уже много лет.

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

Public Sub AutoFitMergedCells (oRange As Range, ByVal dblWidth As Double)



Dim dblHeight As Double



С oRange.Parent

oRange.MergeCells = Ложь

Sheet1.Range("A1") = oRange.Cells(1, 1).Value

Sheet1.Range("A1").WrapText = Истина

Sheet1.Columns(1).ColumnWidth = dblWidth

Sheet1.Rows(1).EntireRow.AutoFit

dblHeight = Sheet1.Rows(1).RowHeight / oRange.Rows.Count

oRange.Parent.Rows(oRange.Row).Resize(oRange.Rows.Count).RowHeight = newHeight

oRange.MergeCells = Истина

oRange.WrapText = Истина

Sheet1.Range("A1").ClearContents

Конец с



End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Черт возьми, скопируй/вставь меня. Кроме того, с явными ссылками на листы With не нужны:

Public Sub AutoFitMergedCells (oRange As Range, ByVal dblWidth As Double)



oRange.MergeCells = Ложь

Sheet1.Range("A1") = oRange.Cells(1, 1).Value

Sheet1.Range("A1").WrapText = Истина

Sheet1.Columns(1).ColumnWidth = dblWidth

Sheet1.Rows(1).EntireRow.AutoFit

oRange.Parent.Rows(oRange.Row).Resize(oRange.Rows.Count).RowHeight _

= Sheet1.Rows(1).RowHeight / oRange.Rows.Count

oRange.MergeCells = Истина

oRange.WrapText = Истина



End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Существует ограничение на размер - если общая требуемая высота превышает 409.5, он будет делать только то, что уместилось бы в 409.5, и распределить его по высоте объединенных ячеек, и вы не увидите остатка. Я надеялся, что это решит проблему с длиной текста, превышающей максимальную высоту строки (409.5). Я думаю, вам может понадобиться перебрать и разделить текст на то, что может вписаться в первую максимальную высоту 409.5, затем поместить остальные в другую ячейку (ZZ2) и так далее, пока она не подойдет, затем подсчитайте строки в каждой ячейке, затем получите общая необходимая высота.
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL