Excel VBA en error reanudar siguiente
El manejo de errores es un mecanismo muy útil y significativo para los lenguajes de programación como el control o prevención de errores de VBA, que es un aspecto del manejo de errores que significa tomar medidas efectivas y significativas dentro de un script de VBA para evitar la aparición de mensajes emergentes de error. La instrucción Excel VBA On Error Resume Next ignora la línea de código que causa un error y continúa o enruta la ejecución a la siguiente línea que sigue a la línea que causó el error.
NOTA: Al reanudar el error, la siguiente declaración no corrige los errores de tiempo de ejecución, es un error que ignora dónde continuará la ejecución del programa VB desde la línea que ha provocado el error de tiempo de ejecución.Básicamente, en caso de error, reanudar a continuación se utiliza cuando desea ignorar el error y continuar o reanudar la ejecución del código a la siguiente celda.
Tipos de errores en VBA
A continuación se muestran los diferentes tipos de errores en VBA:
- Error de sintaxis o error de análisis.
- Error de compilación o compilación.
- Error de tiempo de ejecución.
- Error lógico
Los errores anteriores se pueden rectificar con la ayuda de la depuración y las declaraciones 'En caso de error' en un código. El error de tiempo de ejecución se puede evitar con la ayuda de On Error Resume Next.
Error de tiempo de ejecución de VBA:
Antes de la explicación de On Error Resume Next, debe tener en cuenta el error de tiempo de ejecución cuando las declaraciones o términos matemáticos imposibles están presentes en una declaración, entonces se produce este error de tiempo de ejecución.
Ejemplos de Excel VBA en error Reanudar Siguiente
A continuación se muestran los diferentes ejemplos de Reanudar en caso de error siguiente en Excel VBA:
Puede descargar este VBA en caso de error Reanudar la siguiente plantilla de Excel aquí - VBA en caso de error Reanudar la siguiente plantilla de ExcelVBA en error Reanudar a continuación - Ejemplo # 1
Aquí, se ignorará un error y la ejecución del código continuará. En el ejemplo mencionado a continuación, 6 no se puede dividir por cero, si lo ejecuta sin ingresar la instrucción On Error Resume Next, se produce el siguiente error de tiempo de ejecución.
Código:
Sub RUNTIME_1 () MsgBox 6/0 End Sub
Si On Error Resume Next se ingresa en la parte superior del código después de la declaración SUB, ignora el error de tiempo de ejecución y pasa a la siguiente declaración, da como resultado una salida de 6/2 (cuadro de mensaje emergente con el resultado).
Código:
Sub RUNTIME_2 () En caso de error Reanudar siguiente MsgBox 6/0 MsgBox 6/2 End Sub
VBA en error Reanudar a continuación - Ejemplo # 2
Puedo usar On Error Resume Next en cualquier parte del código desde el principio hasta el final. En el ejemplo mencionado a continuación, tengo que hacer un cálculo 3, es decir
9/3 =?
9/0 =?
9/2 =?
En el ejemplo mencionado anteriormente, puede observar un segundo cálculo donde cualquier número no puede dividirse por cero, es decir, 9 no puede dividirse por cero en el segundo paso. Supongamos que si ejecuta la macro sin ingresar la instrucción On Error Resume Next, ahora puedo ejecutar el código paso a paso con la ayuda de step into o F8 key para comprender cómo funciona.
Ahora, ejecuto el código anterior, haciendo clic en la opción paso a paso o en la tecla F8 con frecuencia, paso a paso. Simplemente copie el código anterior y empiezo a ejecutarlo paso a paso, para el primer paso del cuadro de mensaje de cálculo 3 aparece.
Código:
Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub
Cuando ejecuto la segunda línea de código, el error de tiempo de ejecución mencionado a continuación ocurre en el segundo paso de un código, donde cualquier número no puede dividirse por cero, es decir, 9 no puede dividirse por cero en el segundo paso.
Código:
Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub
Ahora, si incluso hago clic en depurar, no puede continuar, donde me llevará a la segunda línea de código (se resalta en color amarillo), donde necesito hacer la corrección. Entonces, aquí, si hace clic en la opción Paso a paso o en la tecla F8, el tercer cálculo en este código no se ejecutará.
Para rectificar o manejar este error de tiempo de ejecución, tengo que usar o ejecutar la instrucción OnError Resume Next sobre un segundo código o al comienzo del código debajo de la subestación. para omitir esa línea de código y pasar al tercer paso de código y calcular el valor.
Código:
Sub RUNTIME_30 () MsgBox 9/3 en caso de error Reanudar siguiente MsgBox 9/0 MsgBox 9/2 End Sub
O
Sub RUNTIME_31 () En caso de error Reanudar siguiente MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub
Ahora, agregué el siguiente resumen de error al código, donde puede usar cualquiera de los códigos anteriores, si lo ejecuta paso a paso, obtendrá una ventana emergente de dos mensajes, uno es el primer código de salida y el tercer código cálculo. Al reanudar el error Siguiente ignorará el error de tiempo de ejecución en el segundo código y pasará al tercer código.
VBA en error Reanudar a continuación - Ejemplo # 2
Ahora veremos la combinación de Reanudar en caso de error siguiente con Error GoTo 0. En el siguiente código, ignorará los errores hasta que llegue a la instrucción On Error GoTo 0 . Después de la instrucción On Error GoTo 0, el código vuelve o pasa a la comprobación de error normal y activa el error esperado más adelante.
Código:
Sub onError_Go_to_0_with_Resume_next () En caso de error Reanudar siguiente Kill "C: TempFile.exe" En caso de error GoTo 0 Rango ("A1"). Valor = 100 / "PETER" End Sub
Cuando ejecuto el código anterior, mostrará el error de división, es decir, la falta de coincidencia de tipos (el valor numérico no se puede dividir por texto).
Ahora, puede guardar su libro de trabajo como un "libro de Excel habilitado para macros". Al hacer clic en Guardar como en la esquina izquierda de la hoja de trabajo.
cuando abra este archivo de Excel nuevamente, puede usar la tecla de acceso directo que se menciona a continuación, es decir
La tecla de acceso directo Function + Alt + F11 le ayuda a acceder a todo el código macro creado del libro de trabajo. La tecla de acceso directo Function + Alt + F8 le ayuda a abrir una ventana de cuadro de diálogo "Macro", que contiene todos los nombres de macro, donde puede ejecutar un código de macro específico de su elección.
Cosas para recordar
- El error de tiempo de ejecución quedará atrapado y almacenado silenciosamente en el objeto global Err
- En Reanudar error, Siguiente generalmente evita una interrupción en la ejecución del código.
- Las propiedades del objeto de error (Err Object) se borran automáticamente cuando se utiliza Resume Next en una rutina de manejo de errores
Artículos recomendados
Esta es una guía de VBA en caso de error Reanudar a continuación. Aquí discutimos diferentes tipos de Error en VBA Excel junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:
- Guía completa de macros de VBA
- VBA DateDiff (Ejemplos con plantilla de Excel)
- ¿Cómo usar Goal Seek en VBA?
- Hoja de protección VBA con sintaxis
- VBA Environ