- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to Auto-Fit Row Height of Merged Cells in Excel?
We can see that if we try to fit a large amount of data into one cell, the data will now be displayed if we move to another cell; the only way to solve this problem is to increase the row height of the cell. For only one cell, we can adjust the height of the row by using the command "Alt + Enter", but when we try to merge the cells of different heights, we can face the same problem; we can’t use the command. Read this tutorial to learn how you can solve this problem, i.e., how to autofit the row height of merged cells in Excel.
AutoFit Row Height of Merged Cells in Excel
Here we will first insert a VBA module, then run the code and select a range of cells to complete the task. Let us see a simple process to understand how we can automatically fit the row height of merged cells in Excel.
Step 1
Consider the following image of an Excel sheet with two cells of varying heights merged −
Now to adjust the row height, right-click on the sheet name and select view code to open the vba application, then click on insert and select module, then type "programme" into the text box as shown in the below image.
Example
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("Sheet1") 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
In the code, sheet1 is the name of the sheet, and we can adjust the range of cells based on our requirements.
Step 2
Now save the sheet as a macro-enabled template, then use the command F5 to run the code and complete our process successfully, as shown in the below image.
Conclusion
In this tutorial, we used a simple example to demonstrate how we can auto-fit the row height of merged cells in Excel.