No tengo mucha experiencia con VBA, pero a veces lo uso en el trabajo. Recientemente, me he encontrado con un problema que no debería suceder, y que ni mi jefe ni yo podemos darnos cuenta.VBA Error Handling no funciona en Excel
Básicamente, el problema es que la propiedad Application
DisplayAlerts
está establecida en True
de manera predeterminada y no se puede cambiar por algún motivo. Posiblemente relacionado es que cuando aparece un error, siempre muestra la alerta End | Debug | Help y nunca golpea el manejo de error aplicado.
Estoy ejecutando Office 2010 de 64 bits en una máquina con Windows 7 de 64 bits. Sin embargo, no creo que sea un problema de plataforma, ya que he probado en múltiples plataformas diferentes, sistemas operativos y permutaciones de software y ninguna otra máquina tiene este error; sólo mía.
He creado un código de muestra en caso de que alguien haya encontrado esto antes o tenga alguna idea. Lo único que se me ocurre es que tengo algo instalado en mi máquina que está causando esto. Pero después de una purga de programa y muchos reinicios, no estoy más cerca de descifrar lo que podría ser.
Public Sub TestErrorHandler()
' Suppress alerts
Application.DisplayAlerts = False
Dim strArray(1) As String
strArray(0) = "Hello"
strArray(1) = "World"
' Set up error handler
On Error GoTo ErrHandler
For i = 0 To 3
MsgBox strArray(i)
Next
' Strip the error handler
On Error GoTo 0
' Unsuppress alerts
Application.DisplayAlerts = True
Exit Sub
ErrHandler:
MsgBox "Error: " & Err.Description
Resume Next
End Sub
El error es lanzado en el tercer enumeración de la for-loop
(como debería). El tipo de error es irrelevante, lo que es relevante es que recibo el error y nunca golpeo el controlador de errores.
Cualquier sugerencia o ayuda sobre esto sería muy apreciada.
¡Muchas gracias!
Recuerdo que uno, me tomó un tiempo para averiguarlo también. –
¡Muchas gracias! Sabía que era algo divertido que estaba pasando por alto. Eso funcionó perfectamente! Muchas gracias :-D –
Buena respuesta. captura de pantalla ftw. –