仅删除一半记录 - 使用While循环(VBA)

时间:2012-01-26 17:55:33

标签: vba excel-vba while-loop excel-2007 excel

因此,只有一半的搜索记录被删除。 PFB代码片段。例如:存在32个CityName实例。只有16个被删除。

i As Long, lngEndRowInv As Long
Set wsh = ThisWorkbook.ActiveSheet    
i = 1
lngEndRowInv = wsh.Range("A" & Rows.Count).End(xlUp).Row
While i <= lngEndRowInv
If Cells(i, "A") = "CityName" Then
Cells(i, "A").EntireRow.Delete
End If
i = i + 1
Wend

这与反向方法有关吗?任何帮助或方向表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:3)

这是因为如果删除第2行,那么之前第3行的内容现在是第2行。所以每次删除行时都需要偏移引用

If Cells(i, "A") = "CityName" Then
    Cells(i, "A").EntireRow.Delete
    i = i -1
    lngEndRowInv = lngEndRowInv -1
End If