Hogar Redes sociales Cómo usar el enunciado OnError en Excel 2016 VBA - Dummies

Cómo usar el enunciado OnError en Excel 2016 VBA - Dummies

Tabla de contenido:

Video: Los 10 tipos de errores comunes en macros en Excel VBA que muy pocos saben, Runtime errors - Parte 2 2024

Video: Los 10 tipos de errores comunes en macros en Excel VBA que muy pocos saben, Runtime errors - Parte 2 2024
Anonim

Cuando necesite tratar los errores en Excel VBA, puede usar la instrucción OnError. Sin embargo, hay algunas cosas que debes saber primero. Puede usar la declaración On Error de tres maneras.

Sintaxis Qué hace
En caso de error Ir a la etiqueta Después de ejecutar esta declaración, VBA reanuda la ejecución en la instrucción

siguiendo la etiqueta especificada. Debe incluir dos puntos

después de la etiqueta para que VBA lo reconozca como una etiqueta.

En caso de error GoTo 0 Después de ejecutar esta declaración, VBA reanuda su comportamiento de comprobación de errores

normal. Utilice esta declaración después de usar una de las

otras declaraciones de error o cuando desee eliminar la gestión de errores

en su procedimiento.

En reanudación de error Siguiente Después de ejecutar esta instrucción, VBA simplemente ignora todos los errores

y reanuda la ejecución con la siguiente instrucción.

Reanudar después de un error

En algunos casos, simplemente desea que la rutina termine correctamente cuando se produce un error. Por ejemplo, puede mostrar un mensaje que describa el error y luego salir del procedimiento. (El ejemplo de EnterSquareRoot5 que se muestra anteriormente usa esta técnica). En otros casos, desea recuperarse del error, si es posible.

Para recuperarse de un error, debe usar una instrucción de resumen. Esto borra la condición de error y le permite continuar la ejecución en alguna ubicación. Puede usar la declaración de currículum de tres maneras.

Sintaxis Lo que hace
Reanudar La ejecución se reanuda con la declaración que provocó el error. Use

esto si su código de manejo de errores corrige el problema y

está bien continuar.

Reanudar Siguiente La ejecución se reanuda con la instrucción inmediatamente posterior a la declaración

que provocó el error. Esto esencialmente ignora el error

.

Reanudar etiqueta La ejecución se reanuda en la etiqueta que especifique.

El siguiente ejemplo utiliza una instrucción de reanudación después de que ocurra un error:

Sub EnterSquareRoot6 () Dim Num como Variant Dim Msg As String Dim Ans As Integer TryAgain: 'Configurar el manejo de errores On Error GoTo BadEntry 'Solicitud de un valor Num = InputBox ("Enter a value") Si Num = "" Then Exit Sub' Inserta la raíz cuadrada ActiveCell. Valor = Sqr (Num) Salir Sub BadEntry: Msg = Err. Número & ":" & Error (Número Err) Msg = Msg & vbNewLine & vbNewLine Msg = Msg & "Asegúrese de que se selecciona un rango," Msg = Msg & "la hoja no está protegida," Msg = Msg & "y ingresas un valor no negativo "Msg = Msg & vbNewLine & vbNewLine &" ¿Intenta nuevamente? "Ans = MsgBox (Msg, vbYesNo + vbCritical) Si Ans = vbSi Entonces, reanudar TryAgain End Sub

Este procedimiento tiene otra etiqueta: TryAgain.Si se produce un error, la ejecución continúa en la etiqueta BadEntry y el código muestra el mensaje a continuación. Si el usuario responde haciendo clic en Sí, la instrucción de reanálisis se activa y la ejecución vuelve a la etiqueta TryAgain. Si el usuario hace clic en No, el procedimiento finaliza.

Si se produce un error, el usuario puede decidir si volver a intentarlo.

Observe que el mensaje de error también incluye el número de error, junto con la descripción del error "oficial".

La instrucción de resumen borra la condición de error antes de continuar. Para ver esto, intente sustituir la siguiente instrucción por la penúltima declaración en el ejemplo anterior:

Si Ans = vbYes Then GoTo TryAgain

El código no funciona correctamente si usa GoTo en lugar de Resume. Para demostrar, ingrese un número negativo. Obtiene el mensaje de error. Haga clic en Sí para intentar nuevamente y luego ingrese otro número negativo . Este segundo error no está atrapado porque la condición de error original no se borró.

Manejo de errores en pocas palabras

Para ayudarlo a mantener todo este asunto de manejo de errores, aquí hay un resumen rápido y sucio. Un bloque de código de manejo de errores tiene las siguientes características:

  • Comienza inmediatamente después de la etiqueta especificada en la sentencia On Error.

  • Debería ser alcanzado por su macro solo si ocurre un error. Esto significa que debe usar una declaración como Salir Sub o Salir de la Función inmediatamente antes de la etiqueta.

  • Puede requerir una declaración de resumen. Si decide no abortar el procedimiento cuando se produce un error, debe ejecutar una instrucción de resumen antes de volver al código principal.

Saber cuándo ignorar los errores

En algunos casos, está perfectamente bien ignorar los errores. Es entonces cuando entra en juego la declaración On Error Resume Next.

El siguiente ejemplo recorre cada celda en el rango seleccionado y convierte el valor en su raíz cuadrada. Este procedimiento genera un mensaje de error si alguna celda en la selección contiene un número o texto negativo:

SubSeleccionSqrt () Dim celda Como rango If TipoNombre (Selección) <> "rango" Luego Salir Sub Por Cada celda En Selección celda. Valor = Sqr (valor de celda) Celda siguiente End Sub

En este caso, es posible que desee omitir cualquier celda que contenga un valor que no pueda convertir en una raíz cuadrada. Puede crear todo tipo de capacidades de comprobación de errores mediante el uso de estructuras If-Then, pero puede idear una solución mejor (y más simple) simplemente ignorando los errores que se producen.

La siguiente rutina logra esto usando la instrucción On Error Resume Next:

Sub SelectionSqrt () Dim cell As Range If TypeName (Selection) <> "range" Then Exit Sub On On Error Resume Next para cada celda en Selection celda. Valor = Sqr (valor de celda) Celda siguiente End Sub

En general, puede usar una instrucción On Error Resume Next si considera que los errores son inofensivos o sin consecuencias para su tarea.

Cómo usar el enunciado OnError en Excel 2016 VBA - Dummies

Selección del editor

Prueba tus circuitos electrónicos usando una tabla de soldadura sin soldadura: muñecos

Prueba tus circuitos electrónicos usando una tabla de soldadura sin soldadura: muñecos

Una placa de prueba sin soldadura - generalmente llamada placa de prueba es una necesidad para experimentar con diseños de circuitos electrónicos. Una placa de prueba es una placa que tiene orificios en los que puede insertar cables o componentes electrónicos, como resistencias, condensadores, transistores, etc. para crear un circuito electrónico completo sin soldadura. Cuando estás ...

Diez secretos sobre saltar a la radio de jamón - muñecos

Diez secretos sobre saltar a la radio de jamón - muñecos

En este artículo, encontrará diez verdades fundamentales que pueden ayuda incluso al principiante más asiduo a mantener las ruedas girando durante esas primeras incursiones en la radioafición. Ten estos consejos en mente y estarás en camino al estado de veterano en muy poco tiempo. Escucha, escucha, escucha Escuchar es la forma más poderosa e importante ...

Las pantallas de inicio de Nexus One: dummies

Las pantallas de inicio de Nexus One: dummies

La pantalla principal que utiliza en el Nexus One se llama pantalla de inicio, pero no todo lo que ha cargado en su teléfono puede mostrarse en una sola pantalla. En realidad, hay cinco pantallas de inicio para elegir. Para navegar rápidamente y obtener una vista previa de las distintas pantallas de inicio, mantenga presionado el dedo sobre ...

Selección del editor

Combate el estrés con rituales diarios y el estilo de vida mediterráneo: maniquíes

Combate el estrés con rituales diarios y el estilo de vida mediterráneo: maniquíes

Muchos principios del estilo de vida mediterráneo giran en torno a la familia, la comunidad y la diversión. Es tan fácil quedar atrapado en una vida ocupada y agitada y dejar estas pequeñas experiencias en un segundo plano porque no parecen ser tan importantes. Sin embargo, estos pequeños rituales a lo largo del día se suman para tener un gran impacto en ...

Razones para probar la dieta DASH: los dummies

Razones para probar la dieta DASH: los dummies

Los enfoques dietéticos para detener la hipertensión (DASH) tratan la dieta problema generalizado de hipertensión, que afecta a personas de todas las edades, formas, tamaños, colores y nacionalidades. Si no tiene hipertensión, es probable que sus padres, hermanos o amigos sí lo tengan. Y es posible que también un día porque la prevalencia de la hipertensión aumenta con la edad. Si vives ...

Selección del editor

Inscribirse en un Servicio de Emparejamiento Personal: los dummies

Inscribirse en un Servicio de Emparejamiento Personal: los dummies

Los servicios de emparejamiento personal varían enormemente, dependiendo de su población; las credenciales, el entrenamiento, la habilidad, el profesionalismo y la ética de la casamentera; si la compañía es una franquicia nacional o un servicio boutique más personalizado; si la casamentera se encuentra con usted o no; y si el servicio es un negocio real o un hobby que el propietario está haciendo ...

Especiales Estrategias de citas para gays, lesbianas y bisexuales mayores de 50 - Dummies

Especiales Estrategias de citas para gays, lesbianas y bisexuales mayores de 50 - Dummies

Copyright © 2014 AARP Todos los derechos reservados. Gran parte de lo que lees sobre las citas se aplica a todos los donantes, ya sean heterosexuales o homosexuales. Pero algunos temas y diferencias son únicos para las personas que buscan un compañero del mismo sexo. Algunos de los problemas que los gays y las lesbianas deben tener en cuenta ...

Reavivar el romance con la comunicación: dummies

Reavivar el romance con la comunicación: dummies

Una de las formas más extendidas de falta de comunicación entre hombres y mujeres se debe al hecho de que también muchas personas, especialmente los hombres, equiparan el sexo con el romance. Creen que si su vida sexual es adecuada, entonces no hay necesidad de nada más allá de este escenario. A esto se une la idea de que la actividad romántica fuera ...