VBA Timer

Função Excel VBA TIMER

VBA Timer é uma função embutida usada para nos dar o valor fracionário de segundos, é uma função muito útil que é usada para pausar qualquer conjunto de códigos em execução ou retomá-los com base no tempo fornecido pelo usuário, o temporizador é simplesmente usado como uma instrução em VBA com a entrada de tempo.

Em termos simples, o TIMER dá o número total de segundos decorridos desde a meia-noite do dia atual. Desde a primeira linha do código, podemos rastrear o tempo consumido por nosso código para concluir o processo especificado no subprocedimento.

Às vezes, quando você escreve um código e deseja testar a duração do código, isto é, qual é o tempo total gasto pelo seu código para concluir o subprocedimento. Ao testar a duração real de seu código, você pode torná-lo eficiente e eliminar processos demorados, excluindo códigos longos ou indesejados de seu módulo.

Como usar a função TIMER no VBA?

Como eu disse, a função TIMER retorna o total de segundos passados ​​desde a meia-noite da data atual. Quando estou escrevendo este artigo, o horário é 13:50:45 na Índia.

Eu criei um nome de macro e atribuí o valor de TIMER na caixa de mensagem do VBA.

Código:

 Sub Timer_Example1 () MsgBox Timer End Sub 

Quando executo este código, obtive o resultado como 50480.08.

Este é o total de segundos que passaram desde a meia-noite de hoje, ou seja, a partir das 12:00:00

Então, da meia-noite 12 até a hora atual 14:01:20, um total de 14 horas 1 minuto e 20 segundos se passaram. Em segundos é igual a 50480,08 que é dado pela nossa função TIMER.

Exemplos

Você pode baixar este modelo do VBA Timer Excel aqui - VBA Timer Excel Template

Exemplo # 1 - Calcule o tempo total gasto por seu código

Agora vamos realizar algumas codificações simples para testar o tempo que o VBA leva para executar o procedimento. Eu escrevi algum código conforme mostrado na imagem abaixo.

Código:

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

Se eu executar este código agora, ele me mostrará o tempo total gasto pelo VBA para executar.

Diz 3.058594, o resultado dado por esta função está em segundos, ou seja, o tempo total gasto por este código é de 3.058 segundos.

Para você usar o código, eu escrevi o código abaixo para você.

Código:

 Sub Timer_Example1 () Dim StartingTime As Single StartingTime = Timer 'Insira seu código aqui' Insira seu código aqui 'Insira seu código aqui' Insira seu código aqui MsgBox Timer - StartingTime End Sub 

Use o acima e digite seu código após o código StartingTime = Timer, mas antes do código MsgBox Timer - StartingTime ou seja, na área verde você precisa inserir seu código.

Explicação: Em primeiro lugar, a variável StartingTime = Timer significa que no momento da execução do código é igual ao tempo decorrido desde a meia-noite até o tempo de execução do código.

Timer - StartingTime: Significa após a execução do código qual é o tempo decorrido menos o tempo registrado no início do código através do tempo variável de início .

Isso dará a diferença entre a hora de início e de término e retornará o resultado.

Exemplo # 2 - mostrar o resultado no formato de hora correto

Como vimos, o resultado fornecido pela função está em segundos, mas não no formato correto. No entanto, podemos aplicar um formato de hora VBA ao resultado final usando a função FORMAT.

Use o código abaixo para ver o resultado no formato de hora correto, ou seja, formato “hh: mm: ss”.

Usei a função FORMAT aqui. O resultado é dado por (Timer - hora de início). Eu o dividi pelo número 86400 para convertê-lo em segundos de acordo com as regras de formato de hora e, em seguida, apliquei o formato de hora em um formato de hora, minuto e segundo.

Agora, se eu executar o código, ele dará o resultado assim.

Portanto, o tempo total gasto pelo código é de 3 segundos.

A beleza desse código é que, no momento em que ultrapassar 60 segundos, ele mostrará o resultado em minutos. Eu pausei meu código em execução por um minuto (usando Ctrl + Break) e vi o resultado.

Portanto, o tempo total gasto por este código é agora de 1 minuto e 2 segundos.

Exemplo # 3 - Código alternativo para temporizador

Existe uma alternativa para TIMER usando a função NOW () . Abaixo está o código alternativo.

Coisas para lembrar

  • A função TIMER descansará o valor no final do dia, ou seja, às 23:59:59.
  • A função NOW retorna a data e a hora atuais.
  • TIMER mostra o total de segundos transcorridos desde a meia-noite da data atual.