2017-07-20 6 views
0

Meine Lösung dauert sehr lange. Ich habe Datei mit 60k Zeilen, und es kann größer sein. Kannst du mir helfen, diesen Prozess schneller zu machen?VBA: Geschwindigkeit effizient Löschen von Zeilen

Sub kary() 

Dim table As Variant 
Dim Wb As Workbook 
Dim liczba, i As Long 

Application.ScreenUpdating = False 

Set Wb = Application.ActiveWorkbook 

table = Wb.Worksheets("raport").Range("A1").CurrentRegion 

i = 8 
While Cells(i, 1) <> "" 
    If Cells(i, 11) <= 0 Or Cells(i, 5) = "FV_K" Or Cells(i, 5) = "KFD" Or Cells(i, 5) = "KR" Then 
     Rows(i).Delete Shift:=xlUp 
    Else 
     i = i + 1 
    End If 
Wend 

Application.ScreenUpdating = True 

End Sub 
+0

Werfen Sie einen Blick z.B. [hier] (https://Stackoverflow.com/a/26934740/863240). – dee

Antwort

2

Kann versuchen Berechnung auf manuelle Einstellung und Deaktivieren von Ereignissen

'Optimise code performance 
Application.ScreenUpdating = False 
Application.Calculation = xlCalculationManual 
Application.EnableEvents = False 
    . 
    . 
    . 

Application.ScreenUpdating = True 
Application.Calculation = xlCalculationAutomatic 
Application.EnableEvents = True 
Verwandte Themen