Как автоматически подогнать высоту строки объединенных ячеек в Excel?
В Excel мы можем быстро настроить высоту строки, чтобы она соответствовала содержимому ячейки, используя функцию Автоподбор Высоты Строки. Однако эта функция полностью игнорирует объединенные ячейки. То есть вы не можете применить функцию Автоподбор Высоты Строки для изменения высоты строк объединенных ячеек, вам нужно вручную настраивать высоту строк для объединенных ячеек по одной. В этой статье я представлю несколько быстрых методов решения этой проблемы.
Автоподгонка высоты строки объединенных ячеек с помощью кода VBA
Автоподгонка высоты строки объединенных ячеек с помощью кода VBA
Допустим, у меня есть рабочий лист с некоторыми объединенными ячейками, как показано на следующем скриншоте, и теперь мне нужно изменить высоту строки ячейки, чтобы отобразить все содержимое. Следующий код VBA может помочь вам автоматически подогнать высоту строки нескольких объединенных ячеек. Пожалуйста, выполните следующие действия:
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, чтобы запустить этот код, и теперь вы можете видеть, что все объединенные ячейки были автоматически подогнаны под их содержимое, см. скриншот:
Связанная статья:
Как автоматически подогнать ширину столбца в Excel?
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!