VBA – 在循环中删除行条件
我必须删除所有必须在VBA excel中等于单元格的行。 这是我写的:
Dim i As Long, j As Long j = Rows.Count For i = 1 To j If Cells(i, 17).Value = Cells(i, 19).Value Then Rows(i).Delete Next i
但是这个代码并没有删除我正在寻找的每一行。 如果有两行分别与条件匹配,则Excel跳转到另一个并保留(这是合乎逻辑的),我不知道如何适应这个循环来返回并删除每一个search到的行
我从你的代码中了解到,它不是迭代所有行,因为其中一个条件得到满足。 我的build议是反向循环它。 使用“-1”从最后一个迭代
代替:
For i = 1 To j If Cells(i, 17).Value = Cells(i, 19).Value Then Rows(i).Delete Next i
做这个:
For i = j to 1 Step - 1 If Cells(i, 17).Value = Cells(i, 19).Value Then Rows(i).Delete Next i
当你删除一行时,你必须递减i的值并更新j的值。 因为当你删除一行时:
- 下一行现在在我的位置
- 行(j)的数量减less了一行