Wie das umkehren einer For-Schleife
Ich habe ein problem mit meinem makro. Es löscht die Zeile, die tun, die bestimmte Kriterien erfüllen. Aber wenn mehrere aufeinander folgende Zeilen tun, diese Kriterien, tritt ein Fehler auf. Wenn die Zeile gelöscht wird, die anderen Zeilen werden nach oben verschoben, so, wenn also Zeile(2:2) und die Zeile(3:3) zu tun, der den Kriterien der Zeile(2:2) wird gelöscht, und die Zeile(3:3) ist nach oben verschoben, also es wird Zeile(2:2), und die For-Schleife geht zu einer anderen Zeile (die Dritte). Als eine Ergebnis-Zeile, die verwendet werden, um die Zeile(3:3) und nun ist die Zeile(2:2) weggelassen wird und nicht gelöscht werden.
Um sich mit diesem Thema beschäftigen, denke ich, dass es genug ist, um reverse, For-Schleife, so würde es nicht gehen von oben nach unten sondern von unten nach oben. Te resulat wäre doppelten überprüfung von einigen Zeilen, aber keine Zeilen ausgelassen werden.
Das proble ist, dass ich nicht weiß, wie revese die For-Schleife. Ich habe versucht, zu ändern 'Für x = startrow To endrow' , 'Für x = endrow Zu startrow', aber es hat nicht geholfen.
Hier ist der code:
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
Vielen herzlichen Dank im Voraus,
mit den besten GRÜßEN
Artur Rutkowski
InformationsquelleAutor Artur Rutkowski | 2013-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die Schleife und löschen von Zeilen, die Sie brauchen, um zu beginnen an der Unterseite und arbeiten Sie sich bis:
Dann löschen von Zeilen wird nicht stören Ihre Schleife.
Helfen gerne, Artur.
InformationsquelleAutor dendarii
Schleife vorne:
Schleife rückwärts (verwenden Sie
Step -1
am Ende der for-Schleife):InformationsquelleAutor Cuinn Herrick
Andere alternative ist zu setzen x=x-1. nach jedem löschen. Aber die Arbeit von unten nach oben ist besser.
InformationsquelleAutor ExcelExpert