大家好!
我有一个重文件,在A和D列中有不同的值。 现在我希望这个脚本完成以下操作:
以下代码执行此操作70%,我找不到问题。 它总是留下一些行并完全删除不需要的条目,我必须运行此代码两次。
非常感谢您的帮助!谢谢!
Sub RemoveSomeLines()
Dim RemoveRow As Long
RemoveRow = Cells(Rows.Count, "A").End(xlUp).Row
For y = 1 To RemoveRow
If Cells(y, "A").Value = "Option One" And _
Cells(y, "D").Value = "K" Then
Cells(y, "A").EntireRow.Delete
ElseIf Cells(y, "A").Value = "Option Two" And _
Cells(y, "D").Value = "M" Then
Cells(y, "A").EntireRow.Delete
End If
Next y
End Sub
答案 0 :(得分:4)
尝试倒退:
For y = RemoveRow To 1 Step -1
它可能正在跳过行,因为您要删除一行,向上移动下一行,然后跳过在下一个循环中向上移动的行,因为y递增1。
看起来像这样:
删除第20行。
整张纸向上移动。
第21行现在是第20行
y在下一个循环上递增,变为21
新行20实际上完全被跳过了。
或者,我认为如果你删除一行时将y递减1会有效,但是只需要向后工作而不是向前进行代码更改。