Determinar si existe una hoja en un libro mediante VBA en Microsoft Excel

Podría haber un momento en que tenga que verificar si existe una hoja de trabajo, que ha creado o eliminado en un libro de trabajo en una macro / código de VBA. Podemos hacer esto fácilmente usando una función / macro. Hay varias formas de verificar si existe una hoja de cálculo.

Vamos a cubrir las siguientes formas en este artículo:

  1. Función definida por el usuario conocida como UDF
  2. Sub rutina a través del cuadro de mensaje

Primera opción: Función definida por el usuario

La siguiente instantánea contiene algunos nombres de hojas y comprobaremos si existen los nombres de la hoja en la columna A.

Para encontrar si existe una hoja específica, debemos seguir los siguientes pasos para iniciar el editor de VB

Haga clic en la pestaña Desarrollador

En el grupo Código, seleccione Visual Basic

Copie el siguiente código en el módulo estándar

Opción Explícita

La función WorksheetExists (ByVal WorksheetName como cadena) es booleana.

Dim Sht como hoja de cálculo

Para Cada Sht En ThisWorkbook.Hoja

Si Application.Proper(Sht.Name) = Aplicación.Apropiado(WorksheetName) Entonces

WorksheetExists = Verdadero

Salir de la función

Final Si

Siguiente Sht

WorksheetExists = Falso

Función final

Para verificar, usaremos UDF en la celda B2 como

=WorksheetExists(A2)

En la imagen de arriba, "MasterSheet" no existe en nuestro libro de trabajo de muestra; por lo tanto, la fórmula ha dado respuesta como False

Explicación del código:

Esta función toma el valor de “WorksheetName” de la macro que realiza otras actividades. Si necesita cambiarlo según su código, puede hacerlo.

Para Cada Sht En ThisWorkbook.Hojas de trabajo y Siguiente Sht son las partes inicial y final del bucle, respectivamente.

Entonces, si Application.Proper(Sht.Name) = Application.Apropiado(WorksheetName) Entonces

WorksheetExists = Verdadero

Comprueba si el nombre de la hoja coincide con el nombre de la hoja pasado desde la macro principal. Si lo hace, Hoja de cálculo existente es True, y podemos salir de la función. De lo contrario, Hoja de cálculo existente = False se devuelve a la macro principal. El bucle va de la primera hoja a la siguiente hasta que se hayan verificado todas las hojas.

Segunda opción: Sub rutina a través del cuadro de mensaje

Podemos tener una subrutina normal que está llamando a un UDF y, si se encuentra la hoja especificada, el cuadro de mensaje mostrará, 'sheet exist'; si no se encuentra, aparece msgbox, 'sheet not found'.

Para comprobarlo, copiaremos el siguiente código en el módulo estándar:

Función Hoja de cálculo existente2 (Hoja de cálculo existente como cadena, wb opcional como libro de trabajo) como booleano

Si wb no es nada, entonces establezca wb = ThisWorkbook

Con wb

En error Reanudar Siguiente

Para obtener más información, consulte el siguiente enlace:)

En Error GoTo 0

Terminar con

Función final

Sub FindSheet()

Si Hoja de cálculo existente2("Sheet1") Entonces

MsgBox "Sheet1 está en este libro"

Otro

MsgBox "Uy: la hoja no existe"

Final Si

Final Sub

Después de ejecutar la macro “BuscarHoja”, obtendremos el siguiente cuadro de mensaje si la hoja existe:

Si la hoja no existe, obtendremos el siguiente cuadro de mensaje:

Del mismo modo, podemos tener un bucle IF simple que verifica si la hoja existe y realiza ciertas acciones a partir de entonces.

Sub prueba()

Dim ws como hoja de cálculo

Para Cada ws En ThisWorkbook.Hoja

Si ws.Name <> "Principal" Entonces

ws.Rango("A1").Valor = ws.Nombre

Otro

ws.Rango("A1").Value = "PÁGINA DE INICIO DE SESIÓN PRINCIPAL"

Final Si

Siguiente ws

Final Sub

Para probar la macro anterior, necesitamos crear un nombre de hoja "Principal". Esta macro es muy simple

Recorre cada hoja de trabajo en el libro

Luego verifica si el nombre de la hoja de cálculo no es PRINCIPAL

Si es PRINCIPAL, muestra texto, como "PÁGINA DE INICIO DE SESIÓN PRINCIPAL" en A1 de esa hoja, de lo contrario, muestra el nombre de la hoja en la celda A1

Esta es solo otra forma de verificar si la hoja existe. Si existe, realice la acción A, si no, la acción B

Conclusión: Podemos identificar si existe una hoja en nuestro libro de trabajo o no; podemos usar UDF o subrutina según nuestra conveniencia.

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos a info@exceltip.com

Leave a Reply

Your email address will not be published. Required fields are marked *

Terms and Conditions of use

The applications/code on this site are distributed as is and without warranties or liability. In no event shall the owner of the copyrights, or the authors of the applications/code be liable for any loss of profit, any problems or any damage resulting from the use or evaluation of the applications/code.