gpt4 book ai didi

vba - 如何防止在检查和删除上一行时跳过行检查?

转载 作者:行者123 更新时间:2023-12-04 21:57:40 25 4
gpt4 key购买 nike

这旨在遍历两列并验证 L 列中的值是否低于另一个工作表中单元格中的特定(单个)值。它还会检查 M 列同一行的单元格中是否存在“#N/A”错误。如果这些为真,则删除整行。下面的代码似乎可以工作,但是,我必须多次运行 For 循环才能完全删除所有行。我的预感是,当一行被删除时,它不会检查它正下方的那一行并继续前进。我怎样才能避免这种情况?任何帮助表示赞赏。

Sub removerows()

Dim wsOut As Worksheet
Dim wsPrev As Worksheet
Dim r As Long
Dim Lastrow As Long

Set wsOut = Worksheets("Output")
Set wsPrev = Worksheets("Previous")
Lastrow = wsOut.UsedRange(wsOut.UsedRange.Cells.Count).Row

For r = 2 To Lastrow
If wsOut.Cells(r, "L").Value < wsPrev.Cells(2, "L").Value And _
Application.WorksheetFunction.IsNA(wsOut.Cells(r, "M").Value) Then
wsOut.Cells(r, "L").EntireRow.Delete
Else
wsOut.Cells(r, "L").Interior.ColorIndex = 20
End If
Next

End Sub

最佳答案

运行一个反向循环。

更改For r = 2 To LastrowFor r = Lastrow to 2 Step -1 .

我在移动设备上没有对其进行测试,但这应该可以解决您的问题。

关于vba - 如何防止在检查和删除上一行时跳过行检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41430846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com