Durante nuestro manejo de macros, muchas veces es inevitable encontrarnos con errores dentro de la programación, entre los cuales podemos encontrar:
- Errores de compilación
- Errores lógicos
- Errores en tiempo de ejecución.
Considerando estos casos Visual Basic nos brinda una instrucción la cual es llamada “ On Error”, esto nos permitirá a tomar una decisión a partir que suceda un error determinado, esta instrucción nos brinda tres alternativas de decisión: 1. "On Error Resume Next": Con esta primera alternativa la decisión a tomar seria: Si existe un error, continua con el código pero a partir de la siguiente línea al error. Esto hace que al dar inicio al código y en el proceso se encuentre un error
, esto simplemente no se detenga y no genere ningún cuadro de dialogo de error y la ejecución continúe sin problemas. Ejemplo: Para este ejemplo hemos creado un macro, en la cual la userform5 (Este no existe, se ha cambiado de nombre o está mal escrito), por lo cual nos está arrojando un error. (Imagen 1)
On Error VBA - Imagen 1
Si agregamos la opción “On Error Resume Next” , esta continuara su ejecución sin problemas (Imagen 2)
On Error VBA - Imagen 2
2. "On error Go to MiEtiqueta", Esta opción hace que al ejecutar la macro y este detecte un error esta continúe de forma obligatoria en la línea que marquemos con una etiqueta, De esta manera cuando se detecte un error enviaremos a un nuevo código y/o código alterno cuando se produzca el error, el cual será a continuación a la etiqueta asignada. (Imagen3)
On Error VBA - Imagen 3
3. "On error goto 0": Esta opción nos permite deshabilitar la etiqueta colocada como control de errores ( Sierror, en el ejemplo anterior), de esta manera la opción” On Error…” queda deshabilitada y se generaran nuevamente las advertencias de error. (Imagen 4
On Error VBA - Imagen 4
"On error goto -1": Esta opción nos permite deshabilitar la etiqueta colocada como control de errores ( Sierror, en el ejemplo anterior), de esta manera la opción” On Error…” queda deshabilitada y se generaran nuevamente las advertencias de error. (Para mayor visualización de las imágenes, hacer clic en las mismas)
19/02/2020 a las 9:08 pm
Buenas noches,
Quisiera que me colaboraran por favor con este error:
Sub botonproductos()
'
' botonproductos Macro
'
'
("Productos").Delete
Range("C5").Delete
("Menú").Delete
ActiveSheet.Shapes.Range(Array("Group 6")).Select
. = "botonproductos"
Range("M6").Delete
End Sub
Al tratar de abrir el boton me sale
error de compilacion error de sintaxis
y se sombrea de azul
("Productos").Delete
agradezco de antemano su colaboración
10/03/2020 a las 10:33 am
Excelente, me acaba de salvar en mi macro
17/07/2020 a las 3:07 am
Muchas gracias!!