Ausführungszeit von Excel-Makros messen
Schritt-für-Schritt-Anleitung
Um die Ausführungszeit eines Makros in Excel VBA zu messen, kannst du die folgenden Schritte befolgen:
- Öffne den VBA-Editor: Drücke
ALT
+ F11
in Excel.
- Erstelle ein neues Modul:
- Klicke auf
Einfügen
> Modul
.
- Schreibe das Makro: Verwende den folgenden Code, um die Ausführungszeit zu messen, auch wenn das Makro über Mitternacht läuft.
Sub timetest()
Dim datStart As Date
Dim datEnde As Date
Dim laufzeit As String
datStart = Now()
' Hier kommt dein Code, der ausgeführt werden soll
Application.Wait (Now + TimeValue("0:00:10")) ' Beispiel-Wartezeit von 10 Sekunden
datEnde = Now()
laufzeit = Format(datEnde - datStart, "hh:mm:ss")
MsgBox "Aktualisierung beendet" & Chr(13) & _
"Bearbeitungszeit: " & laufzeit
End Sub
- Führe das Makro aus: Drücke
F5
oder gehe zu Run
> Run Sub/UserForm
.
Häufige Fehler und Lösungen
Alternative Methoden
Eine weitere Methode, um die Ausführungszeit eines Makros zu messen, ist die Verwendung der GetTime
Funktion aus der Windows Multimedia-Bibliothek. So funktioniert es:
- Füge die Deklaration hinzu:
Declare Function GetTime Lib "winmm.dll" Alias "timeGetTime" () As Long
- Verwende die Funktion im Makro:
Sub MakroMessen()
Dim startTime As Long
Dim endTime As Long
Dim elapsedTime As Long
startTime = GetTime()
' Hier kommt dein Code
Application.Wait (Now + TimeValue("0:00:10")) ' Beispiel-Wartezeit
endTime = GetTime()
elapsedTime = endTime - startTime
MsgBox "Bearbeitungszeit: " & elapsedTime & " ms"
End Sub
Praktische Beispiele
Hier ist ein einfaches Beispiel, das zeigt, wie du die vba zeit messen
kannst:
Sub BeispielMakro()
Dim startTime As Double
Dim endTime As Double
startTime = Timer
' Komplexer Code hier
Application.Wait (Now + TimeValue("0:00:10")) ' Beispiel-Wartezeit
endTime = Timer
MsgBox "Das Makro hat " & (endTime - startTime) & " Sekunden gedauert."
End Sub
Dieses Beispiel zeigt, wie einfach es ist, die Ausführungszeit deines Makros zu messen, indem du die Timer
Funktion verwendest.
Tipps für Profis
- Vermeide Schleifen: Wenn möglich, optimiere deinen Code, um lange Laufzeiten zu vermeiden.
- Verwende
Application.ScreenUpdating = False
: Deaktiviere die Bildschirmaktualisierung, um die Ausführungsgeschwindigkeit zu verbessern.
- Behalte die Performance im Auge: Überwache die Laufzeit deiner Makros regelmäßig, um Engpässe frühzeitig zu erkennen.
FAQ: Häufige Fragen
1. Wie messe ich die Zeit eines Makros, das über Nacht läuft?
Um die Zeit eines Makros zu messen, das über Mitternacht läuft, kannst du die Now()
Funktion verwenden, um das Start- und Enddatum zu erfassen. Achte darauf, dass du die Zeit im richtigen Format anzeigst.
2. Gibt es eine einfache Möglichkeit, die Ausführungszeit zu messen?
Ja, du kannst die Timer
Funktion nutzen, um die Ausführungszeit eines Makros in Sekunden zu messen. Verwende startTime = Timer
und endTime = Timer
, um die Differenz zu berechnen.
3. Welche Funktion ist besser für die Leistungsüberwachung?
Die GetTime
Funktion ist nützlich für detaillierte Messungen, jedoch ist die Verwendung von Now()
und Timer
in den meisten Fällen ausreichend und einfacher zu implementieren.