Die VBA-Timer-Funktionen geben die Anzahl der Sekunden zurück, die seit Mitternacht des aktuellen Tages verstrichen sind (wird als Single-Datentyp zurückgegeben).
Verwenden der VBA-Timer-Funktion
Der folgende Code zeigt Ihnen, wie Sie die VBA-Timer-Funktion verwenden, um zu bestimmen, wie viele Sekunden seit Mitternacht zum Zeitpunkt der Ausführung des Codes vergangen sind:
12345678 | Sub UsingTheVBATimerFunction()Schwache SekundenSeit als SingleSekundenSeit = Timer()Debug.Print sekundenSeitEnd Sub |
Das Ergebnis ist:
Verwenden Sie den VBA-Timer, um die tatsächliche Zeit zu erhalten
Sie können die von der Timer-Funktion zurückgegebenen Sekunden in das Format hh:mm:ss konvertieren, um die tatsächliche Zeit anzuzeigen, indem Sie den folgenden Code verwenden:
123456789101112131415 | Sub GettingTheActualTime()Schwache SekundenSeit als SinglecTime als Double dimmenDim theActualTime als VarianteSekundenSeit = Timer()cZeit = SekundenSeit / (86400)theActualTime = Format(cTime, "hh:mm:ss")MsgBox "Die seit Mitternacht verstrichene Zeit in Sekunden ist" & " " & SekundenSeit & vbNewLine & _"Die tatsächliche Zeit ist:" & " " & theActualTimeEnd Sub |
Das Ergebnis ist:
Zeit für einen Abschnitt des VBA-Codes
Wenn Sie neu geschriebenen Code vergleichen oder „schnellere“ Methoden in VBA diskutieren möchten, können Sie den integrierten Timer von VBA verwenden. Wenn Sie zu Beginn Ihres Codes eine Variable gleich dem Timer setzen und diese vom Timer am Ende subtrahieren, erhalten Sie ein gute Schätzung wie lange ein Stück Code benötigt, um ausgeführt zu werden.
Die Leistung kann unter anderem durch andere Programme beeinträchtigt werden, die ausgeführt werden oder versuchen, sie auszuführen, während Ihr Makro aktiv ist.
Das folgende Beispiel wurde verwendet, um zu sehen, wie lange es dauern würde, das Wort „test“ eine halbe Million Mal in die Zelle A1 von Sheet1 zu schreiben. Es dauerte 21 Sekunden auf meinem Computer.
123456789101112131415161718 | Sub-BenchMark()Dim Count As LongBenchmark als Double dimmenBenchmark = Timer'Start des Codes zum TestenFür Anzahl = 1 bis 500000Sheet1.Cells(1, 1) = "test"Nächste Zählung'Ende des zu testenden CodesMsgBox-Timer - BenchmarkEnd Sub |
Wenn Ihr Code langsam ausgeführt wird, versuchen Sie ihn zu beschleunigen, indem Sie die Bildschirmaktualisierung deaktivieren. Um den Excel-Bildschirm während der Ausführung des Timers aktiv zu halten, können wir die DoEvents-Methode in den Code einfügen.