Genaue Zeitmessung in VBA
Schritt-für-Schritt-Anleitung
Um die Zeitmessung in VBA zu realisieren, kannst Du die Funktion GetTickCount
verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
-
Öffne den VBA-Editor in Excel mit ALT + F11
.
-
Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsm)" > Einfügen > Modul.
-
Deklariere die Funktion GetTickCount
:
Private Declare Function GetTickCount Lib "kernel32" () As Long
-
Schreibe Dein Makro, um die Zeit zu messen:
Sub Test()
Dim lngTime As Long
lngTime = GetTickCount
' Dein Code hier
MsgBox "Zeit = " & (GetTickCount - lngTime) / 1000 & " Sekunden"
End Sub
-
Führe das Makro aus, um die Zeit zu messen.
Mit dieser Methode kannst Du genauere Zeitmessungen in Excel VBA durchführen.
Häufige Fehler und Lösungen
Alternative Methoden
Falls Du GetTickCount
nicht verwenden möchtest, gibt es auch andere Möglichkeiten zur Zeitmessung:
-
VBA Timer: Diese Funktion liefert die Zeit in Sekunden seit Mitternacht.
Sub ZeitMessenMitTimer()
Dim startTime As Double
startTime = Timer
' Dein Code hier
MsgBox "Zeit = " & Timer - startTime & " Sekunden"
End Sub
-
Excel-Funktion NOW(): Diese gibt das aktuelle Datum und die Uhrzeit zurück, kann jedoch nur für grobe Zeitmessungen verwendet werden.
Praktische Beispiele
Hier ein Beispiel für eine einfache Schleife, deren Ausführungszeit Du messen kannst:
Sub SchleifenZeitMessen()
Dim lngTime As Long
Dim i As Long
lngTime = GetTickCount
For i = 1 To 1000000
' Eine einfache Berechnung
Dim x As Long
x = i * 2
Next i
MsgBox "Zeit = " & (GetTickCount - lngTime) / 1000 & " Sekunden"
End Sub
In diesem Beispiel wird die Zeit gemessen, die benötigt wird, um eine Million Iterationen durchzuführen.
Tipps für Profis
- Verwende
GetTickCount
für präzisere Messungen, wenn Du die Performance von Makros analysierst.
- Kombiniere die Zeitmessung mit
Application.ScreenUpdating = False
, um die Ausführungsgeschwindigkeit zu erhöhen.
- Achte darauf, dass
GetTickCount
seit Windows-Start zählt, was bedeutet, dass der Wert nach etwa 49,7 Tagen zurückgesetzt wird.
FAQ: Häufige Fragen
1. Wie genau ist die Zeitmessung mit GetTickCount
?
GetTickCount
misst die Zeit in Millisekunden und ist somit für die meisten Anwendungen ausreichend genau.
**2. Gibt es eine andere Möglichkeit zur Zeitmessung in Excel