Timer VBA

Funzione Excel VBA TIMER

VBA Timer è una funzione incorporata utilizzata per darci il valore frazionario dei secondi, è una funzione molto utile che viene utilizzata a volte per mettere in pausa qualsiasi serie di codici in esecuzione o riprenderli sulla base del tempo fornito dall'utente, il timer è semplicemente usato come dichiarazione in VBA con l'input del tempo.

In termini semplici, il TIMER fornisce il numero totale di secondi trascorsi dalla mezzanotte del giorno corrente. Fin dalla prima riga del codice, possiamo effettivamente tenere traccia del tempo impiegato dal nostro codice per completare il processo specificato nella sottoprocedura.

A volte, quando scrivi un codice e vuoi testarne la durata, cioè qual è il tempo totale impiegato dal tuo codice per completare la sottoprocedura. Testando la durata effettiva del codice, è possibile rendere il codice efficiente ed eliminare il processo che richiede tempo eliminando codici lunghi o indesiderati dal modulo.

Come utilizzare la funzione TIMER in VBA?

Come ho detto la funzione TIMER restituisce il totale dei secondi trascorsi dalla mezzanotte della data corrente. Quando scrivo questo articolo, l'ora in India è 13:50:45.

Ho creato un nome di macro e assegnato il valore di TIMER nella finestra di messaggio VBA.

Codice:

 Sub Timer_Example1 () MsgBox Timer End Sub 

Quando eseguo questo codice ho ottenuto il risultato come 50480.08.

Questo è il numero totale di secondi trascorsi dalla mezzanotte di oggi, ovvero dalle 00:00

Quindi dalla mezzanotte 12 all'ora corrente 14:01:20, sono trascorse 14 ore in totale 1 minuto e 20 secondi. In secondi è pari a 50480.08 che è dato dalla nostra funzione TIMER.

Esempi

Puoi scaricare questo modello Excel per timer VBA qui - Modello Excel per timer VBA

Esempio # 1: calcola il tempo totale impiegato dal tuo codice

Ora eseguiremo una semplice codifica per testare il tempo impiegato dal VBA per eseguire la procedura. Ho scritto del codice come mostrato nell'immagine sottostante.

Codice:

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

Se eseguo questo codice ora, mi mostrerà il tempo totale impiegato dal VBA per l'esecuzione.

Dice 3.058594, il risultato fornito da questa funzione è in secondi, ovvero il tempo totale impiegato da questo codice è 3.058 secondi.

Per poter utilizzare il codice ho scritto il codice seguente per te.

Codice:

 Sub Timer_Example1 () Dim StartingTime As Single StartingTime = Timer 'Inserisci il tuo codice qui' Inserisci il tuo codice qui 'Inserisci il tuo codice qui' Inserisci il tuo codice qui MsgBox Timer - StartingTime End Sub 

Usa quanto sopra e digita il tuo codice dopo il codice StartingTime = Timer ma prima del codice MsgBox Timer - StartingTime cioè nell'area verde devi inserire il tuo codice.

Spiegazione: Innanzitutto la variabile StartingTime = Timer significa che al momento dell'esecuzione del codice è uguale al tempo trascorso dalla mezzanotte al tempo di esecuzione del codice.

Timer - StartingTime: Significa dopo aver eseguito il codice qual è il tempo trascorso meno il tempo registrato all'inizio del codice in un tempo di inizio variabile .

Questo darà la differenza tra l'ora di inizio e l'ora di fine e restituirà il risultato.

Esempio n. 2: mostra il risultato nel formato ora corretto

Come abbiamo visto il risultato dato dalla funzione è in secondi ma non nel formato accurato. Tuttavia, possiamo applicare un formato ora VBA al risultato finale utilizzando la funzione FORMAT.

Utilizzare il codice seguente per vedere il risultato nel formato ora corretto, ad esempio il formato "hh: mm: ss".

Ho usato la funzione FORMAT qui. Il risultato è dato da (Timer - ora di inizio). L'ho diviso per il numero 86400 per convertirlo in secondi secondo le regole del formato dell'ora, quindi ho applicato il formato dell'ora in un'ora, minuti e secondi.

Ora se eseguo il codice darà il risultato come questo.

Quindi, il tempo totale impiegato dal codice è di 3 secondi.

La bellezza di questo codice è che nel momento in cui attraversa 60 secondi mostrerà il risultato in minuti. Ho messo in pausa il mio codice in esecuzione per un minuto (usando Ctrl + Break) e vedo il risultato.

Quindi il tempo totale impiegato da questo codice è ora di 1 minuto e 2 secondi.

Esempio n. 3: codice alternativo al timer

Esiste un'alternativa al TIMER utilizzando la funzione NOW () . Di seguito è riportato il codice alternativo.

Cose da ricordare

  • La funzione TIMER riporterà il valore alla fine della giornata, cioè alle 23:59:59.
  • La funzione NOW restituisce la data e l'ora correnti.
  • TIMER mostra i secondi totali trascorsi dalla mezzanotte della data corrente.