How to automatically merge blank cells above/left in Excel?
In this article, I am going to talking about merging blank cells above or left automatically as below screenshot shown. Actually, there is no built-in utility that can handle this task, but the macro codes can.
Merge blanks above | ||
![]() |
![]() |
![]() |
Merge blanks left | ||
![]() |
![]() |
![]() |
Merge blank cells above based on a column
Merge blank cells above (only work for single column)
Merge blank cells above based on a column
Supposing there is a range of data in three columns, and now you want to merge the data above based on column C.
1. Press Alt + F11 keys to enable the Microsoft Visual Basic for Applications window, and click Insert > Module. See screenshot:
2. Then paste below code to the blank script. See screenshot:
VBA: Merge blank above based on next column
Sub MergeCells()
'UpdatebyExtendoffice2017025
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select a range:", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
For Each xCell In xRg
If xCell.Value = "" Then
Range(xCell, xCell.Offset(-1, 0)).Merge
End If
Next
End Sub
3. Press F5 key to run the code, and then a dialog pops out to remind you to select a range to work. See screenshot:
4. Click OK, then the blank cells have been merged above. See screenshot:
Merge blank cells above (only work for single column)
Here is a macro code that can merge the blank cells above in the specified column.
1. Press Alt + F11 keys to enable the Microsoft Visual Basic for Applications window, and click Insert > Module. See screenshot:
2. Paste below code to the script. See screenshot:
VBA: Merge blank cells above
Sub mergeblankswithabove()
'UpdatebyExtendoffice20171025
Dim I As Long
Dim xRow As Long
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select a range (single column):", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
If xRg.Columns.Count > 1 Then
MsgBox "Only work for single column", , "KuTools For Excel"
Exit Sub
End If
xRow = xRg.Rows.Count
Set xRg = xRg(xRow)
For I = xRow To 1 Step -1
Set xCell = xRg.Offset(I - xRow, 0)
Debug.Print xCell.Address
If xCell.Value = "" Then Range(xCell, xCell.Offset(-1, 0)).Merge
Next
End Sub
3. Press F5 key to run the code, and a dialog pops out for you to select a column range. See screenshot:
4. Click OK. And the blank cells in the selection have been merged above.
![]() |
![]() |
![]() |
Merge blank cells left
If you want to merge blank cells left, the following code can do you a favor.
1. Press Alt + F11 keys to enable the Microsoft Visual Basic for Applications window, and click Insert > Module. See screenshot:
2. Then paste below code to the blank script. See screenshot:
VBA: Merge blanks left
Sub mergeblankswithleft()
'UpdatebyExtendoffice20171025
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select a range:", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
For Each xCell In xRg
If xCell.Value = "" Then Range(xCell, xCell.Offset(0, -1)).Merge
Next
End Sub
3. Press F5 key to run the code, and a dialog pops out for you to select a range. See screenshot:
4. Click OK. The blank cells have been merged left.
Merge blanks left | ||
![]() |
![]() |
![]() |
Merge same cells or unmerge cell
|
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
