我的代码应该计算 WIP 工作表中的行数,然后遍历行并删除一行,如果 B 列中的字符串包含单词“out”。
Sub delete()
numrows = Worksheets("WIP").Cells(Rows.Count, "A").End(xlUp).Row
For x = 1 To numrows
If InStr(1, lCase(Range("B" & x)), "out") <> 0 Then
Rows(x).Delete
End If
Next
End Sub
代码正在运行,没有出现任何错误,但它只删除了一些行。假设 B 列中有 100 行包含单词“out”。我将运行代码一次,它会删除几行。然后我再次运行它,它又摆脱了一些。如果我运行代码足够多次,它将摆脱所有正确的行。我不确定为什么第一次没有删除所有行,任何帮助将不胜感激。谢谢。
最佳答案
代替:
For x = 1 To numrows
和:
For x = numrows to 1 Step -1
如果向前运行,循环索引会损坏。
关于excel - 循环不删除所有必需的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55244146/