VBA DoEvents | Com i quan s'utilitza la funció DoEvents?

Funció DoEvents d'Excel VBA

Amb l'ajut de VBA DoEvents, podem fer que el codi s’executi en segon pla i alhora ens permet treballar amb Excel i altres programes d’aplicacions. DoEvents no només ens permet treballar amb altres programes, sinó que també podem interrompre el funcionament del codi.

La funció DoEvents passa el control al sistema operatiu de l’ordinador en què treballem.

Com s'utilitza la funció DoEvents?

Es requereix una gran quantitat de codi VBA quan el requisit és enorme. En aquests casos, Excel penja i s’atura durant algun temps i, fins i tot, de vegades deixa de respondre.

Podeu descarregar aquesta plantilla Excel de VBA DoEvents aquí: plantilla Excel de VBA DoEvents

Per obtenir un exemple, mireu el codi següent.

Codi:

 Sub DoEvents_Example1 () Dim i long for i = 1 to 100000 Range ("A1"). Value = i Next i End Sub 

El codi anterior inserirà números de sèrie de l'1 al 100000. Farà falta més d'un minut per executar la tasca. Durant l'execució, Excel es bloqueja durant un temps considerable per completar la tasca. Durant aquest temps, Excel mostra el missatge com "Excel no respon".

A més, no podem accedir al full de treball en què estem treballant. Això és frustrant. Com podem fer que el full de treball Excel estigui disponible perquè funcioni mentre el codi s’executa darrere de la pantalla.

Això es pot aconseguir afegint un VBA Funció DoEvents.

Codi:

 Sub DoEvents_Example1 () Dim i long for i = 1 to 100000 Range ("A1"). Value = i DoEvents Next i End Sub 

En el moment que afegim la funció DoEvents al codi, podem accedir al full de treball d'Excel.

Des de dalt podem veure que el codi s’està executant però podem accedir al full de treball.

Interromp el funcionament del codi

Quan el codi s’executa darrere de la pantalla, podem afegir files, columnes i eliminar-les, podem canviar el nom del full i també podem fer moltes altres coses. En el moment que afegim DoEvents, el codi vba s’executa ràpidament i ens permet comprovar que la tasca esmentada s’executa per si mateixa.

  • Un dels perills de la funció DoEvents és quan canviem de fulls de treball o de llibres, sobreescrivint els valors del full actiu.
  • Un altre perill és que, si introduïm algun valor a la cel·la, l'execució del codi s'atura i ni tan sols ens ho notifica.
Nota: Tot i els perills anteriors de DoEvents, continua sent una funció útil. Podem utilitzar DoEvents com a part del procés de depuració quan intentem corregir errors del codi que hem escrit.