如何反转For循环

我的macros有问题。 它删除满足特定条件的行。 但是,当连续less数行满足这些标准时会发生错误。 当行被删除时,其他行将被移动,所以如果行(2:2)和行(3:3)满足条件,那么行(2:2)被删除,行(3:3)被向上移动,所以它变成了行(2:2),For循环转到另一行(第三个)。 因此,行(3:3)现在是行(2:2)的结果被省略,不会被删除。
为了处理这个话题,我认为这足以逆转For循环,所以它不会从上到下,而是从下到上。 你可能会对某些行进行双重检查,但是不会有行被省略。
问题是,我不知道如何吐露For循环。 我试图改变“对于x = startrow要长途”到“对于x =长途行驶”,但它没有帮助。
这里是代码:

Sub Repurchase_upload() Dim Worksheet As Worksheets startrow = Worksheets("GUTS").Cells(10, 1) endrow = Worksheets("GUTS").Cells(11, 1) For x = startrow To endrow 'I have tried to change this line into: 'For x = endrow To startrow', but it didn' help If Cells(x, "A").Value <> "AA" And Cells(x, "A").Value <> "AB" And Cells(x, "A").Value <> "AC" And Cells(x, "A").Value <> "AD" And Cells(x, "A").Value <> "AE" And Cells(x, "A").Value <> "AH" And Cells(x, "A").Value <> "AI" And Cells(x, "A").Value <> "AF" And Cells(x, "A").Value <> "AG" Then Cells(x, "A").EntireRow.Delete End If Next End Sub 

提前谢谢大家,
最好的祝福,
Artur Rutkowski

如果你正在循环和删除行,你需要从底部开始,然后处理:

 For x = endrow To startrow step -1 

然后删除行不会中断你的循环。

另一种方法是在每次删除之后放入x = x-1。 但是从下往上工作比较好。