How to delete rows based on background color in Excel?
How could you delete entire rows based on background color? In this example, I need to delete all rows which cells filled with blue background color as following screenshot shown. With this article, you will get some codes to achieve this task in Excel.
Delete rows with specific background color based on each cell
Delete rows with specific background color based on one column
Delete rows with specific background color based on each cell
If you have a range of data which filled with some cell colors randomly, and you need to delete the rows which the cell color is blue as following screenshot shown:
To delete this type of rows, you can use the following VBA code, please do as this:
1. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Delete rows which cells contain specific fill color:
Sub DeleteRows()
'Updateby Extendoffice
Dim rngCl As Range
Dim xRows As Long
Dim xCol As Long
Dim colorLg As Long
On Error Resume Next
Set rngCl = Application.InputBox _
(Prompt:="Select a cell with the background color to be deleted", _
Title:="Kutools for Excel", Type:=8)
On Error GoTo 0
If rngCl Is Nothing Then
MsgBox "User cancelled operation." & vbCrLf & _
"Processing terminated", vbInformation, "Kutools for Excel"
Exit Sub
End If
colorLg = rngCl.Interior.Color
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
For xRows = .Rows.Count To 1 Step -1
For xCol = 1 To .Columns.Count
If .Cells(xRows, xCol).Interior.Color = colorLg Then
.Rows(xRows).Delete
Exit For
End If
Next xCol
Next xRows
End With
Application.ScreenUpdating = True
End Sub
3. And then press F5 key to run this code, and a prompt box will pop out to remind you selecting a cell with the fill color that you want to delete, see screenshot:
4. Then click OK, and all the rows have been deleted if the cell with a specific fill color.
Delete rows with specific background color based on one column
If you want to delete the rows with specific color based on only one column, for instance, delete the rows with blue color in column A and get the below screenshot, here is also a VBA code can do you a favor.
1. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Delete rows based on a column which cells have specific fill color:
Sub deleterow()
'UpdateBY Extendoffice
Dim xRg As Range, rgDel As Range
For Each xRg In ThisWorkbook.ActiveSheet.Range("A2:A21")
If xRg.Interior.ColorIndex = 20 Then
If rgDel Is Nothing Then
Set rgDel = xRg
Else
Set rgDel = Union(rgDel, xRg)
End If
End If
Next xRg
If Not rgDel Is Nothing Then rgDel.EntireRow.Delete
End Sub
Note: In the above code, A2:A21 is the column which contain the specific fill color that you want to delete the rows based on, the number 20 in ColorIndex = 20 script is the color index that you want to delete rows based on. You can change them to your need.
3. Then press F5 key to run this code, and all rows which cells contain the blue color in column A have been deleted at once.
Best Office Productivity Tools
Supercharge Your Spreadsheets: Experience Efficiency Like Never Before with Kutools for Excel
Kutools for Excel boasts over 300 features, ensuring that what you need is just a click away...
Supports Office/Excel 2007-2021 & newer, including 365 | Available in 44 languages | Enjoy a full-featured 30-day free trial.
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!
