我必须删除所有必须在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跳转到另一行并离开(这是逻辑的),我不知道如何调整此循环以返回并删除每个搜索的行
答案 0 :(得分:2)
我从您的代码中理解的是,它并没有迭代所有行,因为其中一个条件已经完成。 我的建议是反向循环它。使用“ - 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
答案 1 :(得分:0)
删除行时,必须减小i的值并更新j的值。 因为当你删除一行时: