gpt4 book ai didi

VBA For循环不退出

转载 作者:行者123 更新时间:2023-12-01 02:31:15 25 4
gpt4 key购买 nike

如果不满足某些条件,我将遍历表格的行并删除行。出于某种原因,我的 for 循环即使完成也不会退出。我做错了什么?

lastr = Range("a2").End(xlDown).Row
For r = 2 To lastr
If Cells(r, 1).Value <> "SHORT POSITIONS" And Cells(r, 7).Value = 0 And Cells(r, 10).Value <> "Yes" Then
Rows(r).Delete
r = r - 1
lastr = lastr - 1
End If
Next r

最佳答案

删除行时,始终从底部开始并向顶部工作。未能从底部到顶部工作将导致跳过行,因为行的位置在删除行后会重置。

切勿在 For ... Next Statement 中重置您的计数器.更改 r 会把事情搞砸。更改 lastr 无效。它仍然会转到 lastr,这是您进入循环时的原始值。

lastr = Range("a" & ROWS.COUNT).End(xlUP).Row
For r = lastr To 2 STEP -1 '<~~ VERY IMPORTANT
If Cells(r, 1).Value <> "SHORT POSITIONS" And Cells(r, 7).Value = 0 And Cells(r, 10).Value <> "Yes" Then
Rows(r).Delete
End If
Next r

通常,最好从下往上查找最后填充的单元格,

关于VBA For循环不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33368375/

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