Funkcje zegara VBA zwracają liczbę sekund, które upłynęły od północy bieżącego dnia (zwracane jako typ danych Single).
Korzystanie z funkcji timera VBA
Poniższy kod pokaże, jak używać funkcji timera VBA, aby określić, ile sekund minęło od północy w momencie uruchomienia kodu:
12345678 | Sub przy użyciu funkcjiVBATimer()Dim sekundOd jako singielsekundySince = Zegar()Debug.Drukuj sekundySinceNapis końcowy |
Wynik to:
Użyj timera VBA, aby uzyskać rzeczywisty czas
Możesz przekonwertować sekundy zwrócone przez funkcję Timer na format gg:mm:ss, aby zobaczyć rzeczywisty czas, używając następującego kodu:
123456789101112131415 | Sub PobieranieAktualnegoCzasu()Dim sekundOd jako singielDim cTime As DoublePrzyciemnij rzeczywisty czas jako wariantsekundySince = Zegar()cCzas = sekundyOd / (86400)theActualTime = Format(cTime, "gg:mm:ss")MsgBox "Czas, który upłynął od północy w sekundach to" & " " & sekundySince & vbNewLine & _„Rzeczywisty czas to:” i „ ” i rzeczywisty czasNapis końcowy |
Wynik to:
Czas sekcji kodu VBA
Jeśli chcesz przetestować ponownie napisany kod lub debatować nad „szybszymi” metodami w VBA, możesz użyć wbudowanego timera VBA. Ustawienie zmiennej równej licznikowi czasu na początku kodu i odjęcie jej od licznika czasu na końcu da ci dobre oszacowanie ile czasu zajmuje uruchomienie fragmentu kodu.
Na wydajność mogą wpływać między innymi inne programy działające lub próbujące uruchomić, gdy makro jest aktywne.
Poniższy przykład posłużył do sprawdzenia, ile czasu zajmie napisanie słowa „test” w komórce A1 w arkuszu Arkusz1 pół miliona razy. Na moim komputerze zajęło to 21 sekund.
123456789101112131415161718 | Sub BenchMark()Dim liczyć tak długoDim BenchMark jako podwójnyBenchMark = Zegar„Początek kodu do przetestowania”Dla Count = 1 do 500000Arkusz1.Komórki(1, 1) = "test"Następne zliczanie„Koniec kodu do przetestowania”MsgBox Timer - BenchMarkNapis końcowy |
Jeśli Twój kod działa wolno, spróbuj go przyspieszyć, wyłączając aktualizację ekranu. Aby ekran Excela był aktywny podczas działania timera, możemy wstawić do kodu metodę DoEvents.