Hallo,
also ehrlich gesagt habe ich keine Ahnung was du wann, warum löschen willst.
Dann keine Variblendeklaration (schlecht) und die Berechnung schaltest du auch nicht wieder ein (auch schlecht).
Mal als Ansatz mit einem Select Case.
In die Case Anweisung kannst du alle "Begriffe" kommagetrennt aufnehmen, bei deren Vorkommen die Zeile gelöscht werden soll.
Sub importieren()
Dim i As Long, raLöschen As Range
Workbooks("Aktuelle Datei Augsburg Günzburg").Worksheets(1).Range("A4:N4000").Copy
Workbooks("Makro_Retouren").Worksheets("Daten Augsburg Günzburg").Range("A10").PasteSpecial
For i = 5 To Cells(Rows.Count, 1).End(xlUp).Row
Select Case Cells(i, 9)
Case "", "52237683 n GmbH Paldau Saaz 99", "61896256 T P GmbH Lindau Heuriedweg", _
"50602083 B U Versand GmbH L", "50837304 S Handels und Verlags GmbH Inn"
If raLöschen Is Nothing Then
Set raLöschen = Cells(i, 9)
Else
Set raLöschen = Union(raLöschen, Cells(i, 9))
End If
Case Else
End Select
Next i
If Not raLöschen Is Nothing Then
raLöschen.EntireRow.Delete
End If
Set raLöschen = Nothing
End Sub
Beim Code werden zunächst alle zu löschenden Zeilen in einer Range-Variablen gesammelt und dann am Schluss alles in einem Rutsch gelöscht. Zeilenweises Löschen ist extrem langsam.
Gruß Werner
|