Rechenzeit
28.11.2016 11:10:26
Rust
ich habe folgendes Problem: Mein Algoithmus löscht auf Basis von Vergleichen ein paar Zeilen aus einem Arbeitsblatt:
With ZielDatei.Worksheets("Baseline")
'While ZielDatei.Worksheets("Baseline").Cells(i, 1) ""
While .Cells(i, 1) ""
gefunden = False
For j = 0 To UserForm1.ListBox1.ListCount - 1
If UserForm1.ListBox1.Selected(j) = True Then
If UserForm1.ListBox1.List(j, 0) = .Cells(i, 1) Then
If UserForm1.ListBox1.List(j, 1) = .Cells(i, 2) Then
If UserForm1.ListBox1.List(j, 2) = .Cells(i, 3) Then
gefunden = True
End If
End If
End If
End If
Next j
If gefunden = False Then
.Rows(i).Delete
i = i - 1
''AnzahlZeilenBaseline = AnzahlZeilenBaseline - 1
End If
i = i + 1
Wend
End With
Die entscheidende Stelle, die dabei so ewig dauert (teilweise 45 Minuten) ist .rows(1).delete, es warden aber nie mehr als 8000 Zeilen gelöscht. Wenn man nur schnell ein Programm schreibt, das 8000 Zeilen löscht, dann dauert das nie mehr als ein paar Sekunden. Ich verstehe nicht, warum das Zeilen-Löschen in Verbindung mit dem oben ersichtlichen Algorithmus dann so lange dauert.
Vielen Dank.