Função de temporizador VBA

As funções de VBA Timer retornam o número de segundos decorridos desde a meia-noite do dia atual (retornado como um tipo de dados Único).

Usando a função de temporizador VBA

O código a seguir mostrará como usar a função de temporizador do VBA para determinar quantos segundos se passaram, desde a meia-noite, no momento em que o código está sendo executado:

12345678 Sub UsingTheVBATimerFunction ()Dim segundos desde que simplessegundosSince = Timer ()Debug.Print secondsSinceEnd Sub

O resultado é:

Use o VBA Timer para obter o tempo real

Você pode converter os segundos retornados da função Timer no formato hh: mm: ss para ver a hora real usando o seguinte código:

123456789101112131415 Sub GettingTheActualTime ()Dim segundos desde que simplesDim cTime As DoubleDim theActualTime As VariantsegundosSince = Timer ()cTime = secondsSince / (86400)theActualTime = Format (cTime, "hh: mm: ss")MsgBox "O tempo decorrido desde a meia-noite em segundos é" & "" & segundosSince & vbNewLine & _"A hora real é:" & "" & theActualTimeEnd Sub

O resultado é:

Cronometrar uma seção do código VBA

Se você está procurando um benchmark de código reescrito ou debater métodos “mais rápidos” no VBA, você pode usar o temporizador integrado do VBA. Definir uma variável igual ao cronômetro no início de seu código e subtrair isso do cronômetro no final lhe dará um boa estimativa de quanto tempo um trecho de código leva para ser executado.

O desempenho pode ser afetado pela execução ou tentativa de execução de outros programas enquanto a macro está ativa, entre outras coisas.

O exemplo a seguir foi usado para ver quanto tempo levaria para escrever a palavra “teste” na célula A1 na Planilha1 meio milhão de vezes. Demorou 21 segundos na minha máquina.

123456789101112131415161718 Sub BenchMark ()Dim Count enquanto LongDim BenchMark As DoubleBenchMark = Timer'Início do código para testarPara contagem = 1 a 500000Sheet1.Cells (1, 1) = "teste"Próxima contagem'Fim do código para testarMsgBox Timer - BenchMarkEnd Sub

Se o seu código estiver lento, tente acelerá-lo desativando a atualização da tela. Para manter a tela do Excel ativa enquanto o cronômetro está em execução, podemos inserir o método DoEvents no código.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave