Ich möchte einige Zeilen löschen - 1000/10000 basierend auf einer Bedingung, aber es dauert zu lange dauern. Ich habe auch versucht, all verfügbaren Lösungen im Internet heißt die Daten filtert, Application.ScreenUpdating = False
, Einstellung Timer usw.Optimieren der Zeit zum Löschen von Zeilen in Excel VBA
Private Sub Remove_incomplete_records_Click()
Dim n, count As Integer
Dim i As Long
Dim lastrownum As Integer
lastrownum = Sheets("Master_Data").Cells(Rows.count, 1).End(xlUp).Row
Dim varCalcmode
Do While (lastrownum)
Application.ScreenUpdating = False
'for NB,FO etc if field your refernence is not present then delete the entire row.
For i = 2 To lastrownum
If (Sheets("Master_Data").Cells(i, 2).Value <> "YC" And Sheets("Master_Data").Cells(i, 2).Value <> "YK" And Sheets("Master_Data").Cells(i, 2).Value <> "MK" And Cells(i, 2).Value <> "WK" And Sheets("Master_Data").Cells(i, 2).Value <> "AN") Then
If (Sheets("Master_Data").Cells(i, 4).Value = "") Then
On Error Resume Next
Sheets("Master_Data").Rows(i).EntireRow.Delete Shift:=xlUp
varCalcmode = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Else
End If
Else
End If
Next i
Loop
Application.Calculation = varCalcmode
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Bitte legen nahe, den schnellen Weg, um diese Operation zu tun.
Arbeiten von der letzten Reihe nach oben ist eine kostengünstige zu implementieren Optimierung. – Bathsheba