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 TemplateExemplo # 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.