Ich habe versucht, einige Zeilen zu löschen, deren sechste Zelle nicht den richtigen Wert enthält. Und hier ist mein Code:VBA So löschen Sie die falschen diskreten Zeilen
dim i As Integer
for i = 1 to Row
If Worksheets("Data").Cells(i,6).Text <>"a" Then
Worksheets("Data").Rows(i).Delete
End If
Next i
Und ich habe festgestellt, dass, wenn ich Linie 1 (aaa) löschen, dann die ehemalige Linie 2 (bbb) wird Linie 1, vielleicht ist es nicht die Linie, die ich will halten , aber ich bin schon 2 geworden, also habe ich eigentlich diese linie (bbb) verpasst und direkt auf die ehemalige linie 3 (ccc) entfernt.
1 aaa => bbb
2 bbb => ccc
3 ccc
Und ich weiß nicht, ob es einen guten Algorithmus für dieses Problem gibt? Vielen Dank.
warum nicht nur eine einfache Lösung hat Hier, wenn du in dein 'If' gehst, dann, nachdem du die Zeile gelöscht hast, füge einfach eine Zeile' i = i - 1' hinzu. –
Oh, also beginne ich immer von der vorherigen Zeile, wo ich eine gelöscht habe? – Hiddenllyy
Wenn Sie eine Zeile löschen, dann ja. Sie wollen keine Zeile überspringen. –