VBA DoEvents

Função DoEvents do Excel VBA

Com a ajuda do VBA DoEvents , podemos fazer o código rodar em segundo plano e, simultaneamente, nos permite trabalhar com o Excel e outros aplicativos de software também. DoEvents não apenas nos permite trabalhar com outros softwares, mas também pode interromper a execução do código.

A função DoEvents passa o controle para o sistema operacional do computador em que estamos trabalhando.

Como usar a função DoEvents?

Uma grande quantidade de código VBA é necessária quando o requisito é enorme. Nesses casos, o Excel trava e para por algum tempo e às vezes até deixa de responder.

Você pode baixar este modelo VBA DoEvents Excel aqui - VBA DoEvents Excel Template

Para obter um exemplo, veja o código abaixo.

Código:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i Next i End Sub 

O código acima irá inserir números de série de 1 a 100000. A execução da tarefa levará facilmente mais de um minuto. Durante a execução, o Excel trava por uma quantidade considerável de tempo para concluir a tarefa. Durante esse tempo, o Excel mostra a mensagem “Excel Not Responding”.

Além disso, não podemos acessar a planilha em que estamos trabalhando. Isso é uma coisa frustrante, então como fazemos para que a planilha do Excel esteja disponível para funcionar enquanto o código está sendo executado atrás da tela.

Isso pode ser obtido adicionando uma função DoEvents do VBA .

Código:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i DoEvents Next i End Sub 

No momento em que adicionamos a função DoEvents no código, podemos acessar a planilha do Excel.

De cima, podemos ver que o código está em execução, mas podemos acessar a planilha.

Interromper a execução do código

Quando o código está sendo executado atrás da tela, podemos adicionar linhas, colunas e excluir o mesmo, podemos renomear a planilha e podemos fazer muitas outras coisas também. No momento em que adicionamos DoEvents, isso faz com que o código vba execute mais rápido e nos permite sentir que a tarefa mencionada está sendo executada por si mesma.

  • Um dos perigos da função DoEvents é quando trocamos as planilhas ou pastas de trabalho, ela sobrescreve os valores da planilha ativa.
  • Outro perigo é que, se inserirmos qualquer valor na célula, a execução do código será interrompida e nem mesmo nos notificará.
Nota : Apesar dos perigos de DoEvents acima, ainda é uma função útil. Podemos usar DoEvents como parte do processo de depuração quando tentamos consertar bugs do código que escrevemos.