Saltar al contenido

DEVOLVER LA FILA DE UN ERROR EN EL EDITOR DE VBA


Recommended Posts

publicado

Hola chicos,

Se me ocurre una idea, y no sé si es posible ejecutarla.

El tema es el siguiente:

"Tengo un código con el típico 'On error goto error' y dentro de la etiqueta error otro código con un MsgBox que me informa del tipo y número de error producido.

Aquí el ejemplo:

Sub HolaMundo()
   ' Limpiamos los errores anteriores (por si acaso)...
   Err.Clear

   ' Tratamos los errores del procedimiento...
   On Error GoTo error

(AQUÍ EL CÓDIGO DEL PROCEDIMIENTO)

salir:
   ' Y salimos del procedimiento...
   Exit Sub
error:
   ' Mostramos por pantalla el tipo de error y la descripción del mismo...
   MsgBox Prompt:="Upps, parece que hubo un error... Por favor, póngase en contacto " & _
                  "directamente con su programador informático." & vbCr & vbCr & _
                  "El error producido es [" & Err.Number & "] - " & Err.Description & _
                  " en el evento Worksheet_Activate de la hoja de " & Worksheet.Name & " del libro " & ThisWorkbook.Name & ".", _
          Buttons:=vbCritical, _
          Title:="                                               AVISO IMPORTANTE"
   ' Sacamos el error fuera de la pila de errores...
   Resume salir
End Sub

 

El caso es que me preguntaba si VBA podría mostrarme a través del MsgBox, el número de la fila en donde se produce el error dentro del editor VBA.

Digamos que tengo tropecientas mil líneas de código, y tener que ir buscándo una a una me supone un gran trabajo siempre y cuando se pudiera identificar rápidamente el número de la línea en donde se está produciendo el error."

 

Se me ha ocurrido está idea ya que en otros editores de código tipo NetBeans o Eclipse, estos si que te devuelven el número de la línea en donde se está produciendo el error, que puede deverse dicho sea de paso a varias cosas: un desbordamiento, una variable no declarada, un bucle infinito, etc.

 

Muchas gracias por vuestra atención.

publicado

Quita On Error GoTo error y vuelve a ejecutar la macro, se detendrá en la fila errónea, pulsa depurar y la verás resaltada en amarillo.

publicado

Si, efectivamente eso es lo que hago.

No obstante, cuando el código de mi procedimiento hace llamadas a otros procedimientos, a veces se me hace complicado detectar el error.

Por eso, me preguntaba si era posible que devolviera el número de fila en donde el editor de VBA detecta el error, así como ocurre con otros IDE tipo NetBeans, eclipse, ATOM, etc.

Pero bueno, si no es posible...

Muchas gracias por contestar, @Antoni.

Saludos.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.