lunes, 4 de febrero de 2013

Comprobar la existencia de una hoja.

Al trabajar con VBasic muchas veces necesitamos utilizar una hoja, que puede que no exista, que hay que añadir, o puede que ya exista, con lo que no hay que crearla. Una manera de gestionar este tipo de asuntos es gestionar los errores que puedan producirse. La gestión de errores al  intentar utilizar una hoja, si no existe, nos da un error (<>0) y si existe nos da una ausencia de error (0), lo que de una manera simple nos permite saber si una hoja existe o no. Conocido el error o la ausencia de este procedemos a crear la hoja, si fuera necesario.
En VBasic hay una primera función para controlar los errores, la función Err. Esta función devuelve un valor numérico. Si no se produce un error devuelve cero y dependiendo del error, un número distinto de cero. Por otra parte los errores en tiempo de ejecución detienen el proceso. Para evitar que el proceso se detenga al aparecer un error utilizamos la instrucción On Error Resume Next. Debemos recoger el error inmediatamente después de producirse, en la siguiente instrucción, E = Err. Al terminar la gestión del error debemos activar de nuevo la detención de la ejecución al producirse un error, mediante On Error Goto 0.
En esta rutina además de comprobar la existencia de la hoja, en caso de que no exista, la crea.


Sub Comprueba(Hoja)

On Error Resume Next

Set h = Sheets(Hoja)

E = Err

On Error GoTo 0

If E <> 0 Then

Sheets.Add.Name = Hoja 

End If

End Sub 
Preparamos la gestión.


Provocamos el error.

Guardamos el error en una
 variable.
Reactivamos la detención.

Si el error es distinto de

cero.
Añadimos una hoja.


No hay comentarios:

Publicar un comentario