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
|
The Best Office Productivity Tools
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
- Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
- Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
- Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
- Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
- Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
- Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
- Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
- Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
- More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.

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!
