Excel VBA删除包含特定文本的行。代码不工作

Excel VBA删除包含特定文本的行。代码不工作,excel,vba,Excel,Vba,我有一个打开工作簿的宏。然后我希望它查看C列,如果它发现任何与文本“Draft”有关的内容,请删除整行。这是我的代码,它似乎没有给我任何错误,但它不会删除我想要的行。我错过了什么 enter code here Dim i As Long Dim FinalRow As Long FinalRow = Cells(Rows.Count, 1).End(xlUp).Row With Worksheets("Archer Search Report") For i = 2 To FinalRow

我有一个打开工作簿的宏。然后我希望它查看C列,如果它发现任何与文本“Draft”有关的内容,请删除整行。这是我的代码,它似乎没有给我任何错误,但它不会删除我想要的行。我错过了什么

enter code here
Dim i As Long
Dim FinalRow As Long
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row

With Worksheets("Archer Search Report")
For i = 2 To FinalRow
If Range("C" & i).Value = "Draft" Then
    Rows(i).Delete
End If
Next i
End With
试试这个:

Sub DeleteRows()
    Dim i As Long, finalRow As Long

    finalRow = Cells(Rows.Count, 1).End(xlUp).Row

    With Worksheets("Archer Search Report")
    For i = finalRow To 2 Step -1
        If Range("C" & i).Value = "Draft" Then
            Range("C" & i).EntireRow.Delete
        End If
    Next i
    End With
End Sub
注:

  • 删除时最好向后操作(
    Step-1
    ),否则会影响行数
  • 我更喜欢
    EntireRow.Delete
试试这个:

Sub DeleteRows()
    Dim i As Long, finalRow As Long

    finalRow = Cells(Rows.Count, 1).End(xlUp).Row

    With Worksheets("Archer Search Report")
    For i = finalRow To 2 Step -1
        If Range("C" & i).Value = "Draft" Then
            Range("C" & i).EntireRow.Delete
        End If
    Next i
    End With
End Sub
注:

  • 删除时最好向后操作(
    Step-1
    ),否则会影响行数
  • 我更喜欢
    EntireRow.Delete

非常有效,谢谢!我以后会记得第一步。那很好,谢谢!我将来会记得第一步。