Перейти к содержимому

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

Author: Xiaoyang Last Modified: 2025-06-05

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

Автоподгонка высоты строки объединенных ячеек с помощью кода VBA


arrow blue right bubble Автоподгонка высоты строки объединенных ячеек с помощью кода VBA

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

sample data

1. Нажмите и удерживайте клавиши ALT + F11, что откроет окно Microsoft Visual Basic for Applications.

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.) В приведенном выше коде вы можете добавить новые диапазоны, просто скопировав скрипт Call AutoFitMergedCells(Range("a1:b2")) столько раз, сколько необходимо, и изменить диапазоны объединенных ячеек на нужные вам.

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

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

 result of auto fitting row height of merged cells with vba code



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

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

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

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных на основе: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Расширенных функций Kutools
Популярные функции: Найти, выделить или отметить дубликаты | Удалить пустые строки | Объединить столбцы или ячейки без потери данных |   Округлить без формулы ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP с несколькими значениями | Многолистовой поиск | Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Избранные функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгами и листами | Библиотека автотекста | Выбор даты | Объединить данные | Шифрование/расшифровка ячеек | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр ячеек с жирным/курсивом/зачёркнутым...) ...
Топ-15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ практических формул (Расчет возраста на основе даты рождения, ...) |19 инструментов вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов для объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое

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


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

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