VBA Timer - Exemplos para usar a função de temporizador VBA do Excel

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, ou seja, qual é o tempo total gasto pelo seu código para concluir o subprocedimento. Ao testar a duração real do seu código, você pode torná-lo eficiente e eliminar o processo demorado excluindo códigos indesejados ou longos de seu módulo.

Como usar a função TIMER no VBA?

Como eu disse a função TIMER retorna, o total de segundos decorridos 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.

Esse é o total de segundos que passaram desde a meia-noite de hoje, ou seja, a partir das 12h.

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

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 alguns códigos, como 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 que você use o código, 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, em uma á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 horário de início da variável .

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 em um formato preciso. 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 é o momento em que ele atravessa 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 repousará o valor no final do dia, ou seja, às 23:59:59.
  • A função NOW retorna a data e hora atuais.
  • TIMER mostra o total de segundos transcorridos desde a meia-noite da data atual.

Artigos interessantes...