根据单元格值删除行不起作用

时间:2019-01-16 14:03:43

标签: excel vba

我的工作表中有一些数据称为“新建”,我的数据在A列至K列中。但是,出于数据分析的目的,E列至H列故意留为空白,而且我没有标题,因此我的数据从单元格A1开始。现在在A列中,单元格中有颜色,我想删除所有非白色的行,因此保留其中没有颜色的行。

我做了一些研究,但是我在线上获得的所有代码都删除了整个工作表,或者只是通过了代码而没有任何反应。以下是我目前不执行任何操作的程序。我使用F8,仍然没有错误。

查看图像以获取示例数据,我正在尝试使用没有任何颜色的单元格获得结果。我试图删除颜色索引的引号,但仍然不起作用。

 Sub deleterow()

 lastRow = Worksheets("New").Cells(Rows.Count, "A").End(xlUp).Row
 For i = lastRow To 1 Step -1
      If Worksheets("New").Cells(i, 1).Interior.ColorIndex <> "2" Then
           Rows(i).EntireRow.Delete
           i = i + 1
      End If
 Next I

 End Sub

enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

尝试以下代码:

Option Explicit

Sub deleterow()

Dim i As Long, LastRow As Long

With Worksheets("New")
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

    For i = LastRow To 1 Step -1
        'If .Cells(i, 1).Interior.Color <> xlNone Then
        ' replace RGB(255, 255, 255) with the "white" color
        If .Cells(i, 1).Interior.Color <> RGB(255, 255, 255) Then
            .Rows(i).Delete
        End If
    Next i
End With

End Sub

答案 1 :(得分:0)

删除无颜色行

联盟版本

Option Explicit

Sub DeleteNoColorRow()

    Const cSheet As Variant = "Sheet1"  ' Worksheet Name/Index
    Const cFirstR As Integer = 1        ' First Row
    Const cColumn As Variant = "A"      ' Column Letter/Number

    Dim rngU As Range     ' Union Range
    Dim lastRow As Long   ' Last Row
    Dim i As Long         ' Row Counter

    With ThisWorkbook.Worksheets(cSheet)
        lastRow = .Cells(.Rows.Count, cColumn).End(xlUp).Row
        For i = cFirstR To lastRow
            If .Cells(i, cColumn).Interior.ColorIndex <> xlNone Then
                If Not rngU Is Nothing Then
                    Set rngU = Union(rngU, .Cells(i, cColumn))
                  Else
                    Set rngU = .Cells(i, cColumn)
                End If
            End If
        Next
    End With

    If Not rngU Is Nothing Then
        rngU.EntireRow.Delete ' Hidden = True
        Set rngU = Nothing
    End If

End Sub