宏仅通过第一个结果运行

时间:2019-06-03 19:23:03

标签: excel vba

以下代码似乎仅对第一个结果有效。我必须重新运行它才能删除其他结果。有人可以告诉我为什么请吗?谢谢

我已经尝试过多次复制和粘贴代码以进行补偿,但这给了我关于重复代码的错误

Dim cell As Range
For Each cell In [AE1:AE2000]
    If cell.Value = "REMOVE" Then Range(cell.Offset(0, -5).Address & ":" & cell.Offset(0, 0).Address).Delete Shift:=xlUp
Next cell

1 个答案:

答案 0 :(得分:2)

删除行时必须做的一件事是向后循环;否则,您可能会跳过行,这就是声音的原因。向后循环时必须使用计数器,例如

Sub x()

Dim r As Long, cell As Range

Set cell = Range("AE1:AE2000")

For r = cell.Count To 1 Step -1
    If UCase(cell(r).Value) = "REMOVE" Then
        Range(cell(r).Offset(0, -5), cell(r)).Delete Shift:=xlUp
    End If
Next r

End Sub