VBA Timer

Funkcja Excel VBA TIMER

VBA Timer to wbudowana funkcja służąca do podania ułamkowej wartości sekund, jest to bardzo przydatna funkcja, która służy czasami do wstrzymywania dowolnego zestawu uruchomionych kodów lub wznawiania ich na podstawie czasu podanego przez użytkownika, timer używany jako instrukcja w języku VBA z wprowadzeniem czasu.

Mówiąc najprościej, TIMER podaje całkowitą liczbę sekund, które minęły od północy bieżącego dnia. Począwszy od pierwszego wiersza kodu, możemy faktycznie śledzić czas poświęcony przez nasz kod na zakończenie procesu określonego w podprocedurze.

Czasami, gdy piszesz kod i chcesz przetestować czas trwania kodu, tj. Jaki jest całkowity czas potrzebny na ukończenie podprocedury przez Twój kod. Testując rzeczywisty czas trwania kodu, możesz zwiększyć wydajność kodu i wyeliminować czasochłonny proces, usuwając niechciane lub długie kody z modułu.

Jak korzystać z funkcji TIMER w VBA?

Jak powiedziałem, funkcja TIMER zwraca całkowitą liczbę sekund, które minęły od północy bieżącej daty. Kiedy piszę ten artykuł, w Indiach jest godzina 13:50:45.

Utworzyłem nazwę makra i przypisałem wartość TIMER w oknie komunikatu VBA.

Kod:

 Sub Timer_Example1 () MsgBox Timer End Sub 

Po uruchomieniu tego kodu otrzymałem wynik jako 50480.08.

To jest całkowita liczba sekund, które minęły od dzisiejszej północy, tj. Od 12:00:00

Tak więc od północy 12 do aktualnego czasu 14:01:20 minęło łącznie 14 godzin 1 minuta i 20 sekund. W ciągu kilku sekund jest równe 50480,08, który jest podawany przez naszą funkcję TIMER.

Przykłady

Możesz pobrać ten szablon VBA Timer Excel tutaj - Szablon VBA Timer Excel

Przykład 1 - Oblicz całkowity czas zajęty przez Twój kod

Teraz wykonamy proste kodowanie, aby przetestować czas potrzebny VBA na wykonanie procedury. Napisałem kod, jak pokazano na poniższym obrazku.

Kod:

 Sub Do_Until_Example1 () Dim ST As Single ST = Timer Dim x As Long x = 1 Do Until x = 100000 Cells (x, 1). Wartość = xx = x + 1 Loop MsgBox Timer - ST End Sub 

Jeśli uruchomię ten kod teraz, pokaże mi całkowity czas potrzebny na wykonanie VBA.

Mówi 3.058594, wynik podany przez tę funkcję jest w sekundach, czyli całkowity czas potrzebny na ten kod to 3,058 sekundy.

Abyś mógł skorzystać z kodu, napisałem dla Ciebie poniższy kod.

Kod:

 Sub Timer_Example1 () Dim StartTime As Single StartingTime = Timer 'Wpisz tutaj kod' Wpisz kod tutaj 'Wpisz kod tutaj' Wpisz kod tutaj MsgBox Timer - StartTime Koniec Sub 

Skorzystaj z powyższego i wpisz swój kod po kodzie StartingTime = Timer, ale przed kodem MsgBox Timer - StartingTime, tj. W zielonym obszarze musisz wpisać swój kod.

Objaśnienie: Po pierwsze, zmienna StartingTime = Timer oznacza, że ​​w momencie uruchomienia kodu jest on równy czasowi, jaki upłynął od północy do czasu wykonania kodu.

Timer - StartingTime: Oznacza po uruchomieniu kodu, jaki jest czas, który upłynął minus czas zarejestrowany na początku kodu poprzez zmienną godzinę rozpoczęcia .

To da różnicę między godziną rozpoczęcia i zakończenia i zwróci wynik.

Przykład 2 - Pokaż wynik w odpowiednim formacie czasu

Jak widzieliśmy, wynik podany przez funkcję jest w sekundach, ale nie w dokładnym formacie. Możemy jednak zastosować format czasu VBA do wyniku końcowego za pomocą funkcji FORMAT.

Użyj poniższego kodu, aby zobaczyć wynik w poprawnym formacie czasu, tj. Formacie „gg: mm: ss”.

Użyłem tutaj funkcji FORMAT. Wynik podaje (Timer - czas rozpoczęcia). Podzieliłem go przez liczbę 86400, aby przekonwertować go na sekundy zgodnie z regułami formatu czasu, a następnie zastosowałem format czasu w formacie godziny, minuty i sekundy.

Teraz, jeśli uruchomię kod, da taki wynik.

Zatem całkowity czas potrzebny na kod to 3 sekundy.

Piękno tego kodu polega na tym, że w momencie, gdy przekroczy on 60 sekund, pokaże wynik w minutach. Wstrzymałem działanie kodu na minutę (używając Ctrl + Break) i widzę wynik.

Zatem całkowity czas potrzebny na wykonanie tego kodu wynosi teraz 1 minutę 2 sekundy.

Przykład # 3 - Alternatywny kod dla timera

Istnieje alternatywa dla TIMERA poprzez użycie funkcji NOW () . Poniżej znajduje się kod alternatywny.

Rzeczy do zapamiętania

  • Funkcja TIMER przywróci wartość na koniec dnia, tj. O 23:59:59.
  • Funkcja TERAZ zwraca aktualną datę i godzinę.
  • TIMER pokazuje całkowitą liczbę sekund, które minęły od bieżącej daty o północy.