Makro sehr langsam
01.02.2023 11:22:15
Bianca
ich habe hier ein Makro. Hintergrund ist eine Abfrage von Vergleichswerten und eine Rückgabe von Daten bei gleichem Wert. Das ganze geht über eine Loop Abfrage in zwei Excel Sheets die Zeilen durch. Ich weiß es ist wahrscheinlich nicht besonders "schön" programmiert, aber es funktioniert so weit. Nur ist es sehr langsam. Es werden zwischen 1000 und 2000 Zeilen abgefragt. Die Frage ist nun, ob es irgendwie zu beschleunigen ist?
Anbei die beiden Codes:
Sub Berechnen() Application.ScreenUpdating = False Sheets("Eingabe").Select Range("B8").Select Selection.End(xlDown).Select If ActiveCell = "" Or Range("B5") = "" Or Range("B3") = "" Then On Error GoTo Fehler Fehler: MsgBox "Eingabewert fehlt!", vbExclamation Else ActiveCell.Offset(ColumnOffset:=2).Activate ActiveCell.FormulaR1C1 = "=RC[-2]/R5C2" ActiveCell.Select Selection.Copy Selection.End(xlUp).Select ActiveCell.Offset(RowOffset:=1).Select Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Paste ActiveCell.Select Application.CutCopyMode = False End If 'Application.Goto Reference:="Start" Range("A1").Select EndZeile = Range("B1048576").End(xlUp).Row zeile = 10 Do If Cells(zeile, 2) > "" Then Cells(zeile, 3) = "=R[-1]C+60*R4C2" zeile = zeile + 1 Loop Until zeile > EndZeile Call Sverweis Sheets("Auswertung").Select Application.ScreenUpdating = True End Sub________________________________________________________________________
Sub Sverweis() Sheets("Berechnungen").Select Range("C2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents EndZeile = Range("A500000").End(xlUp).Row zeile = 2 Do If Cells(zeile, 1) > "" Then Cells(zeile, 3) = "=VLOOKUP(RC[-2],Eingabe!C:C[1],2,FALSE)" zeile = zeile + 1 Loop Until zeile > EndZeile EndZeile = Range("A500000").End(xlUp).Row zeile = 2 Do If Cells(zeile, 1) > "" Then Cells(zeile, 4) = "=RC[-2]-RC[-1]" zeile = zeile + 1 Loop Until zeile > EndZeile End Sub