Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in
x
or
x
x
Register
x

or

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  
doc merge blank above left 1 doc arrow right doc merge blank above left 2

 Merge blanks left    
doc merge blank above left 3 doc arrow right doc merge blank above left 4

Merge blank cells above based on a column

Merge blank cells above (only work for single column)

Merge blank cells left


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.
doc merge blank above left 1

1. Press Alt + F11 keys to enable the Microsoft Visual Basic for Applications window, and click Insert > Module. See screenshot:
doc merge blank above left 5

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

doc merge blank above left 6

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:
doc merge blank above left 7

4. Click OK, then the blank cells have been merged above. See screenshot:
doc merge blank above left 2


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:
doc merge blank above left 9

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

doc merge blank above left 10

3. Press F5 key to run the code, and a dialog pops out for you to select a column range. See screenshot:
doc merge blank above left 11

4. Click OK. And the blank cells in the selection have been merged above.

doc merge blank above left 12 doc arrow right doc merge blank above left 13

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:
doc merge blank above left 14

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

doc merge blank above left 15

3. Press F5 key to run the code, and a dialog pops out for you to select a range. See screenshot:
doc merge blank above left 16

4. Click OK. The blank cells have been merged left.

 Merge blanks left    
doc merge blank above left 3 doc arrow right doc merge blank above left 4

Merge same cells or unmerge cell

doc merge unmerge


Recommended Productivity Tools for Excel

Kutools for Excel Helps You Always Finish Work Ahead of Time, and Stand Out From Crowd

  • More than 300 powerful advanced features, designed for 1500 work scenarios, increasing productivity by 70%, give you more time to take care of family and enjoy life.
  • No longer need memorizing formulas and VBA codes, give your brain a rest from now on.
  • Become an Excel expert in 3 minutes, Complicated and repeated operations can be done in seconds, 
  • Reduce thousands of keyboard & mouse operations every day, say goodbye to occupational diseases now.
  • 110,000 highly effective people and 300+ world-renowned companies' choice.
  • 60-day full features free trial. 60-day money back guarantees. 2 years of free upgrade and support.

Brings Tabbed Browsing and Editing to Microsoft Office, Far More Powerful Than The Browser's Tabs

  • Office Tab is designed for Word, Excel, PowerPoint and Other Office Applications: 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!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.