Ich habe einige VBA-Code geschrieben, das ganz langsam läuft. Ich habe eine Reihe von verschiedenen Schleifen in meinem Code. Ich weiß, dass Loops nicht immer der effizienteste Weg sind, um Daten zu manipulieren, also denke ich, dass sie das Problem sind. Ich brauche Ideen, wie ich die Schleife ändern oder eliminieren kann, damit ich die Laufzeit meines Codes beschleunigen kann.Beseitigung/Ändern einer Schleife zu beschleunigen Code
Unten ist die aktivste Schleife ich geschaffen habe. Es läuft durch alle Zellen in der Zeile D (ab D2) und ihre Werte zu manipulieren basiert weg von Einträgen in den Zellen in Reihe 1. Wenn ich Hilfe auf dieser Schleife bekommen kann ich wahrscheinlich ähnliche Techniken zu verwenden, werden in der Lage zu verändern Die andere Schleife in meinem Code. Irgendwelche Tipps werden geschätzt.
'sub work week for date range
Range("D2").Select
Do Until IsEmpty(ActiveCell.Value)
If IsEmpty(ActiveCell.Offset(-1, 0)) = False Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value & "-" & Right(ActiveCell.Value, 4)
Else: ActiveCell.Value = ActiveCell.Value & "-" & Right(ActiveCell.Offset(0, -1), 4)
End If
ActiveCell.Offset(0, 1).Select
Loop
Verwenden Arrays und Schleife durch diese. –
Wie @Scott sagte - anstatt auf Zellen zu verweisen, ziehen Sie diese Werte in ein Array und durchlaufen Sie diese. _Es läuft durch alle Zellen in Zeile D_ - muss es wirklich 16384 Zellen durchlaufen (oder 256, wenn auf Excel 2003)? –