使用循环删除基于行的单元格内容

时间:2016-02-29 13:35:49

标签: excel vba excel-vba

我有以下内容:

For i = 1 To 400:
    If Cells(i, 7) = "Client" Then
    Cells(i, 1).EntireRow.Delete
    End If
Next i

问题是我在细胞(10,7)和细胞(11,7)中都有Client。 删除第(10)行后,第(11)行成为新行(10),我正在寻找行(11)中的Client,我找不到它(除非客户端在从一开始的第(12)行,所以我最终得到了很多未删除的行。

2 个答案:

答案 0 :(得分:2)

在excel表中插入或删除行应该从最后一行完成。

For i = 400 To 1 Step -1
    If Cells(i, 7) = "Client" Then Cells(i, 1).EntireRow.Delete
Next i

答案 1 :(得分:0)

如果在if条件中递减变量i,它是否有效。

示例:

For i = 1 To 400
    If Cells(i, 7) = "Client" Then
        Cells(i, 1).EntireRow.Delete
        i = i – 1
    End If
Next i