VBA Schleifen beschleunigen: Arrays?
11.08.2014 15:08:21
Robert
nun ist es auch bei mir soweit, die Schleiferei dauert einfach zu lange.
Mit Arrays habe ich bisher kaum Kontakt gehabt, ich habe mir nur die Grundlagen auf diversen ExcelSeiten angelesen. Leider lange nicht genug, um das ganze in einem Praxisteil funktionierend umzusetzen.
Ich hoffe aber, dass ich Codevorschläge von euch nachvollziehen und daraus lernen kann.
Folgender Code läuft über 1500 Zeilen "Actual" und ca 17000 Zeilen "Forecast"
Damit benötigt er leider momentan ein paar Minuten Rechenzeit.
Option Explicit
Dim x, y, z As Long
Dim MonatName As String
Sub Testr()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For x = 2 To Tabelle1.UsedRange.SpecialCells(xlCellTypeLastCell).Row
For y = 17 To Workbooks("Actual.xlsx").Worksheets("Sales Download").UsedRange.SpecialCells( _
xlCellTypeLastCell).Row
If Left(Tabelle1.Cells(x, 1), 12) = Left(Workbooks("Actual.xlsx").Worksheets("Sales _
Download").Cells(y, 20), 12) Then
MonatName = Workbooks("Actual.xlsx").Worksheets("Sales Download").Cells(y, 34)
z = InStr("xxJanFebMarAprMayJunJulAugSepOctNovDec", Left(MonatName, 3)) / 3
Tabelle1.Cells(x, 1 + z) = Workbooks("Actual.xlsx").Worksheets("Sales Download"). _
Cells(y, 28)
End If
Next y
Debug.Print x & " of " & Tabelle1.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Next x
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Für jede noch so kleine Optimierung bin ich Dankbar :)Viele Grüße
Robert