Hallo VBA-Spezialisten,
schon einmal vielen Dank im Voraus für die Hilfe. Und hier mein Problem:
Ich habe eine Schleife in VBA geschrieben, doch diese dauert mir zu lange. Nun wollte ich diese in ein array einlesen und mit bestimmten Bedingungen wieder ausgeben lassen. (Weiß jedoch nicht wie)
Die Matrix ist so, das in der 1. Spalte Datums/Zeit-Angaben stehen und in Spalte 2-8 Zuordnungen. Nun ist es jedoch so, das bestimmte Datumswerte fehlen. Diese wollte ich in der ersten Spalte auffüllen (Ohne für diese später Zuordnungen aufzufüllen -> Spalte 2-8 bleibt bei den neu hinzugefügten Datumswerten leer)
Am ende soll in Spalte 1 eine fortlaufendes datum im Stundenrythmus stehen. (ertser und letzter Wert in der Ursprungsliste sind fix und somit die Start- und Stop-Werte)
Mein bisheriges Makro:
Sub Listenkorrektur()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error GoTo Ende
For s = 1 To Sheets.Count - 4
e = Sheets("Anlage_" & s).Cells(65536, 1).End(xlUp).Row
For a = e To 3 Step -1
If Sheets("Anlage_" & s).Cells(a - 1, 1) = "" Then
Rows(a - 1 & ":" & a - 1).Delete
a = a + 1
End If
If Format(Sheets("Anlage_" & s).Cells(a, 1) + 1 / 24, "dd.mm.yyyy hh:mm") <> _
Format(Sheets("Anlage_" & s).Cells(a - 1, 1) * 1, "dd.mm.yyyy hh:mm") Then
Sheets("Anlage_" & s).Rows(a & ":" & a).Insert Shift:=xlDown
Sheets("Anlage_" & s).Cells(a, 1) = Sheets("Anlage_" & s).Cells(a + 1, 1) + 1 / 24
a = a + 1
End If
Next
Next
Exit Sub
Ende:
Application.Calculation = xlCalculationAutomatic
End Sub
Wie ließe sich da Makro beschleunigen, da mehrere Tausend Zeilen durchlaufen werden!
Tschüß, schnelle Hilfe wäre echt toll! |