根据条件删除行

时间:2019-06-14 04:46:56

标签: excel vba

因此,列1由各种名称组成,如果该列中特定单元格中的名称不是名称的子集,则我想删除整行。我尝试使用嵌套的If结合For来遍历行,但事实证明,按升序删除行不起作用。 现在,我希望for循环从最终值开始到初始值,然后像这样在结尾处使用“ Step -1”

For Each a In Range("F2:F244") Step-1

但是我得到

  

编译错误:语句结束

我在做什么错?还是有其他删除行的方法?

编辑:在@Skin的建议下,以下是更新的代码。但是现在错误显示为

  

运行时错误'1004':无法设置范围类的Delete属性

Sub deleteaccount()

Dim x As Range, l As Long

Set x = Range("E2:E244")

For l = x.SpecialCells(xlCellTypeLastCell).Row To x.Cells(1, 1).Row Step -1
    If Left(Cells(l, 5), 4) = "DARL" Then
        Cells(l, 6).Value = "darling"

    ElseIf Left(Cells(l, 5), 4) = "GIRI" Then
            Cells(l, 6).Value = "girias"

        ElseIf Left(Cells(l, 5), 4) = "S.C." Then
                Cells(l, 6).Value = "sc shah"

            ElseIf Left(Cells(l, 5), 4) = "SHAR" Then
                    Cells(l, 6).Value = "sharpatronics"

                ElseIf Left(Cells(l, 5), 4) = "VASA" Then
                        Cells(l, 6).Value = "vasanth"

                    ElseIf Left(Cells(l, 5), 4) = "VIVE" Then
                            Cells(l, 6).Value = "viveks"

                        Else
                            Cells(l, 6).EntireRow.Delete = True

    End If

Next l

End Sub

1 个答案:

答案 0 :(得分:0)

尝试一下...

Dim objRange As Range, lngRow As Long

Set objRange = Range("F2:F244")

With objRange
    For lngRow = .Cells(.Rows.Count, 1).Row To .Cells(1, 1).Row Step -1
        If .Cells(lngRow, 1) = "THE_VALUE" Then .Rows(lngRow).Delete
    Next
End With