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