Gestors derrors per a macros dExcel

Els gestors d'errors us permeten especificar què passa quan es troba un error mentre s'executa el codi de macro d'Excel. Els gestors d'errors són línies semblants a les següents:

En cas d'error GoTo MyError

Sense gestors d'errors, qualsevol error que es produeixi al vostre codi demanarà a Excel que activi un missatge d'error poc útil que normalment no transmetrà clarament el que ha passat. Tanmateix, amb l'ajuda dels controladors d'errors, podeu optar per ignorar l'error o sortir del codi amb gràcia amb el vostre propi missatge a l'usuari.

Hi ha tres tipus de declaracions d'error:

  • En cas d'error GoTo SomeLabel: el codi salta a l'etiqueta especificada.

  • En cas d'error Resume Next: l'error s'ignora i el codi es reprèn.

  • En cas d'error GoTo 0: VBA es restableix al comportament normal de comprovació d'errors.

En cas d'error GoTo SomeLabel

De vegades, un error al vostre codi significa que heu de sortir del procediment amb gràcia i donar als vostres usuaris un missatge clar. En aquestes situacions, podeu utilitzar la instrucció On Error GoTo per dir a Excel que salti a una determinada línia de codi.

Per exemple, a la petita part de codi següent, dieu a Excel que divideixi el valor de la cel·la A1 pel valor de la cel·la A2 i, a continuació, col·loqueu la resposta a la cel·la A3. Fàcil. Què podria sortir malament?

Sub macro1()
Interval("A3").Valor = Interval("A1").Valor / Interval("A2").Valor
End Sub

Com a resultat, dues coses principals poden sortir malament. Si la cel·la A2 conté 0, obteniu un error de divisió per 0. Si la cel·la A2 conté un valor no numèric, obtindreu un error de no coincidència de tipus.

Per evitar un missatge d'error desagradable, podeu dir a Excel que En cas d'error, voleu que l'execució del codi salti a l'etiqueta anomenada MyExit.

Al codi següent, l'etiqueta MyExit va seguida d'un missatge a l'usuari que ofereix un consell amigable en lloc d'un missatge d'error desagradable. Tingueu en compte també la línia Sub-eixida abans de l'etiqueta MyExit, que assegura que el codi simplement sortirà si no es troba cap error:

Sub macro1()
En cas d'error GoTo MyExit
Interval("A3").Valor = Interval("A1").Valor / Interval("A2").Valor
Sortir de Sub
La meva sortida:
MsgBox "Si us plau, utilitzeu números vàlids diferents de zero"
End Sub

En cas d'error Reprèn Següent

De vegades, voleu que Excel ignori un error i simplement reprèn l'execució del codi. En aquestes situacions, podeu utilitzar la instrucció On Error Resume Next.

Per exemple, el següent fragment de codi està destinat a suprimir un fitxer anomenat GhostFile.exe del directori C:Temp. Després de suprimir el fitxer, un quadre de missatge agradable indica a l'usuari que el fitxer ha desaparegut:

Sub macro1()
Elimina "C:TempGhostFile.exe"
MsgBox "El fitxer s'ha suprimit."
End Sub

El codi funciona molt bé si realment hi ha un fitxer per esborrar. Però si per algun motiu el fitxer anomenat GhostFile.exe no existeix a la unitat C:Temp, es genera un error.

En aquest cas, no t'importa si el fitxer no hi és perquè l'aniries a eliminar de totes maneres. Així que simplement podeu ignorar l'error i continuar amb el codi.

Mitjançant la instrucció On Error Resume Next, el codi segueix el seu curs tant si el fitxer de destinació existeix com si no:

Sub macro1()
En cas d'error Reprèn Següent
Elimina "C:TempGhostFile.exe"
MsgBox "El fitxer s'ha suprimit."
End Sub

En cas d'error GoTo 0

Quan s'utilitzen determinades declaracions d'error, pot ser necessari restablir el comportament de verificació d'errors de VBA. Per entendre què significa això, mireu el següent exemple.

Aquí, primer voleu suprimir un fitxer anomenat GhostFile.exe del directori C:Temp. Per evitar errors que puguin derivar-se del fet que el fitxer de destinació no existeix, utilitzeu la instrucció On Error Resume Next. Després d'això, intenteu fer algunes matemàtiques sospitoses dividint 100/Mike:

Sub macro1()
En cas d'error Reprèn Següent
Elimina "C:TempGhostFile.exe"
Interval ("A3"). Valor = 100 / "Mike"
End Sub

L'execució d'aquest fragment de codi hauria de generar un error a causa de les matemàtiques difuses, però no és així. Per què? Perquè l'última instrucció que vau donar al codi va ser On Error Resume Next. Qualsevol error que es trobi després d'aquesta línia s'ignora efectivament.

Per solucionar aquest problema, podeu utilitzar la instrucció On Error GoTo 0 per reprendre el comportament normal de comprovació d'errors:

Sub macro1()
En cas d'error Reprèn Següent
Elimina "C:TempGhostFile.exe"
En cas d'error GoTo 0
Interval ("A3"). Valor = 100 / "Mike"
End Sub

Aquest codi ignorarà els errors fins a la declaració On Error GoTo 0. Després d'aquesta declaració, el codi torna a la comprovació d'errors normal i activa l'error esperat derivat de les matemàtiques difuses.


Com bloquejar Microsoft Word dobrir fitxers en mode només de lectura a Windows

Com bloquejar Microsoft Word dobrir fitxers en mode només de lectura a Windows

Com bloquejar Microsoft Word d'obrir fitxers en mode de només lectura a Windows Microsoft Word obre fitxers en mode de només lectura, cosa que fa que sigui impossible editar-los? No us preocupeu, els mètodes es mostren a continuació

Com solucionar la impressió incorrecta de documents de Microsoft Word

Com solucionar la impressió incorrecta de documents de Microsoft Word

Com corregir errors en imprimir documents incorrectes de Microsoft Word Els errors en imprimir documents de Word amb tipus de lletra canviats, paràgrafs desordenats, falta de text o contingut perdut són força habituals. No obstant això, no

Esborra els dibuixos de llapis i ressaltats a les teves diapositives de PowerPoint

Esborra els dibuixos de llapis i ressaltats a les teves diapositives de PowerPoint

Si heu utilitzat el llapis o el marcador per dibuixar a les vostres diapositives de PowerPoint durant una presentació, podeu desar els dibuixos per a la següent presentació o esborrar-los de manera que la propera vegada que el mostreu, començareu amb diapositives de PowerPoint netes. Seguiu aquestes instruccions per esborrar dibuixos a llapis i ressaltadors: Esborrant línies una a […]

Contingut de la biblioteca destils a SharePoint 2010

Contingut de la biblioteca destils a SharePoint 2010

La biblioteca d'estils conté fitxers CSS, fitxers de llenguatge de full d'estil extensible (XSL) i imatges utilitzades per pàgines mestres predefinides, dissenys de pàgina i controls a SharePoint 2010. Per localitzar fitxers CSS a la biblioteca d'estils d'un lloc de publicació: Trieu Accions del lloc→Visualitza Tot el contingut del lloc. Apareix el contingut del lloc. La biblioteca d'estil es troba a […]

Formateu els números en milers i milions als informes dExcel

Formateu els números en milers i milions als informes dExcel

No desbordeu el vostre públic amb números gigantesques. A Microsoft Excel, podeu millorar la llegibilitat dels vostres taulers i informes formatant els vostres números perquè apareguin en milers o milions.

Com compartir i seguir els llocs de SharePoint

Com compartir i seguir els llocs de SharePoint

Apreneu a utilitzar les eines de xarxes socials de SharePoints que permeten a persones i grups comunicar-se, col·laborar, compartir i connectar-se.

Com convertir les dates a formats Julian a Excel

Com convertir les dates a formats Julian a Excel

Les dates julianes s'utilitzen sovint en entorns de fabricació com a marca de temps i referència ràpida per a un número de lot. Aquest tipus de codificació de dates permet als minoristes, consumidors i agents de serveis identificar quan es va fabricar un producte i, per tant, l'antiguitat del producte. Les dates julianes també s'utilitzen en programació, militars i astronomia. Diferents […]

Com crear una aplicació web daccés

Com crear una aplicació web daccés

Podeu crear una aplicació web a Access 2016. Què és, de totes maneres, una aplicació web? Bé, web vol dir que està en línia i l'aplicació és només una abreviatura de "aplicació". Una aplicació web personalitzada és una aplicació de base de dades en línia a la qual s'accedeix des del núvol mitjançant un navegador. Creeu i manteniu l'aplicació web a la versió d'escriptori […]

Barra dinici ràpid a SharePoint 2010

Barra dinici ràpid a SharePoint 2010

La majoria de les pàgines del SharePoint 2010 mostren una llista d'enllaços de navegació a la barra d'inici ràpid al costat esquerre de la pàgina. La barra d'inici ràpid mostra enllaços al contingut del lloc destacat, com ara llistes, biblioteques, llocs i pàgines de publicació. La barra d'inici ràpid inclou dos enllaços molt importants: Enllaç de tot el contingut del lloc: el […]

Què signifiquen els missatges derror del solucionador a Excel?

Què signifiquen els missatges derror del solucionador a Excel?

Per a problemes senzills, Solver a Excel sol trobar ràpidament els valors òptims de la variable Solver per a la funció objectiu. Però, en alguns casos, Solver té problemes per trobar els valors de la variable Solver que optimitzen la funció objectiu. En aquests casos, Solver normalment mostra un missatge o un missatge d'error que descriu o discuteix el problema que […]