Ich versuche, ein Blatt mit einem Import einer .CSV-Datei zu aktualisieren. Ich kann alle Informationen lesen und aktualisieren. Nach dem Update möchte ich einige Daten entfernen. Alle Zeilen mit D leer müssen gelöscht werden (ganze Zeile).Zeilen in einer Foreach löschen
Dafür habe ich eine foreach, die überprüft D3: D486 (ist letzte Zeile). Nach dem Ausführen des Makros sind einige Zeilen gelöscht, aber nicht alle Zeilen.
Dim rCell As Range
Dim rRng As Range
Debug.Print CStr(LastRow)
Set rRng = Worksheets("sheet1").Range("D3:D" + CStr(LastRow))
For Each rCell In rRng.Cells
If Not IsEmpty(rCell) Then
Debug.Print rCell.Row
Else
Debug.Print "Empty"
Worksheets("sheet1").Rows(rCell.Row).Delete
End If
Next rCell
Ich denke, es gibt ein Problem mit der for-each .. Von Beispiel, wenn er Reihe 100, das nächste Mal, wenn er geht löscht 101 zu rudern .. Aber das ist vorherige Reihe 102 .. ich sparen kann die Zellen könnten in einem Array sein, aber dann wäre es dasselbe. Außer wenn ich den anderen Weg gehe (von unten nach oben). Wie kann ich das lösen?
Ich würde '&' anstelle von '+', oder wahrscheinlicher 'Arbeitsblätter (" Sheet1 "). Zellen (i, 4) .EntireRow.Delete" - keine Notwendigkeit, Textfolgen und Bereichsadressen dann zu manipulieren. –