如何在Excel中根据背景颜色删除行


Excel是一个强大的电子表格程序,允许您轻松组织和分析数据。许多用户需要根据特定条件删除行。本课程将重点介绍根据单元格背景颜色删除行。当您对数据进行颜色编码或希望根据其外观过滤特定行时,使用背景颜色非常方便。我们将介绍一种自动化方法,而不是手动滚动电子表格并逐行删除行,这可以节省您的时间和精力。

根据背景颜色删除Excel中的行

在这里,我们将首先创建一个VBA模块,然后选择具有要删除的背景颜色的单元格。让我们来看一个简单的过程,了解如何在Excel中根据背景颜色删除行。

步骤1

考虑一个Excel工作表,其中单元格具有多种背景颜色,如下面的屏幕截图所示。

首先,右键单击工作表名称,然后选择“查看代码”以打开VBA应用程序。

右键单击 > 查看代码。

步骤2

然后单击“插入”,选择“模块”,并将下面的代码复制到文本框中。

插入 > 模块 > 复制。

示例

Sub DeleteRows()
    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:="Delete Based Color", Type:=8)
    On Error GoTo 0
    If rngCl Is Nothing Then
        MsgBox "User cancelled operation." & vbCrLf & _
        "Processing terminated", vbInformation, "Delete Rows Color"
        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

然后单击F5转到模块,选择具有要删除的背景颜色的单元格,然后单击“确定”以删除所有具有匹配背景颜色的单元格。

F5 > 选择单元格 > 确定。

注意:如果您只想删除单列中的单元格,请使用下面的代码。

示例

Sub deleterow()
   Dim xRg As Range, rgDel As Range
    For Each xRg In ThisWorkbook.ActiveSheet.Range("A2:A10")
        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

在代码中,A2:A10是列的范围。

结论

在本教程中,我们使用了一个简单的示例来演示如何根据Excel中的背景颜色删除行以突出显示特定数据集。

更新于:2023年7月20日

671 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告