¿cómo comprobar si existe una hoja usando vba?

Si desea crear una hoja, eliminarla, moverla o copiarla, necesita saber si esta hoja existe o no.

Para escribir código para verificar si la hoja existe o no, necesita un bucle que recorra cada hoja del libro y coincida con el nombre que proporcionó. Pero esta es la cuestión: puedes usar dos bucles diferentes para esto ( For Next y For Each ), y hoy usaremos ambos.

En este tutorial, veremos diferentes formas de hacer esto. Así que asegúrese de tener la pestaña Desarrollador en su cinta y abra el editor VBA para escribir este código.

Comprobar si existe una hoja en el libro de trabajo actual

Con este bucle, puede hacer referencia a todas las hojas del libro y recorrerlas una por una para hacer coincidir el nombre de la hoja con el nombre de la hoja que desea buscar.

Sigue estos pasos:

  1. Primero, declare una variable para usar en la hoja cuando ejecute el bucle y para almacenar el nombre de la hoja que desea buscar.
    declare-a-variable-to-use-for-the-sheet
  2. A continuación, escriba una línea de código para un cuadro de entrada para ingresar el nombre de la hoja que desea buscar.
    line-of-code-for-an-input-box
  3. Después de eso, comience su ciclo con la palabra clave For Each. Y use la variable para hacer referencia a cada hoja de trabajo del libro.
    start-your-loop
  4. Desde aquí, debe escribir una declaración IF THEN ELSE para hacer coincidir el nombre de la hoja con el nombre que ingresó en el cuadro de entrada, luego mostrar un cuadro de mensaje si se encuentra la coincidencia y salir del procedimiento.
    write-an-if-then-else
  5. Al final, un cuadro de mensaje para notificarle si no se encuentra ninguna coincidencia.
    message-box-to-show

Enlaces útiles: Ejecutar una macroGrabador de macrosEditor de Visual BasicManual de macros personales

Código completo:

 Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For Each sht In ThisWorkbook.Worksheets If sht.Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next sht MsgBox "No! " & shtName & "is not there in the workbook." End Sub

Déjame explicarte cómo funciona: cuando ejecutes este código, aparecerá un mensaje donde deberás ingresar el nombre de la hoja que deseas buscar.

Después de eso, revisa cada hoja para hacer coincidir el nombre con el nombre que ingresó, y si el nombre coincide con una hoja, le muestra un mensaje y otro mensaje si no hay coincidencia.

Aquí hay otro código para verificar si una hoja existe o no.

 Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String Dim i As Long i = Sheets.Count shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For i = 1 To i If Sheets(i).Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next i MsgBox "No! " & shtName & " is not there in the workbook." End Sub

Este código usa el bucle FOR NEXT y usa el número total de hojas en el libro de trabajo y, en base a eso, recorre cada hoja que coincida con el nombre que ingresó.

Comprobar si la hoja existe en el libro cerrado

En el siguiente código, tiene un bucle que busca el nombre de la hoja en un libro cerrado. Para referirnos al archivo, utilizamos la dirección del archivo.

 Sub vba_check_sheet() Dim wb As Workbook Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") Application.ScreenUpdating = False Set wb = Workbooks.Open _ ("C:UsersDellDesktopsample-file.xlsx") For Each sht In wb.Worksheets If sht.Name = shtName Then wb.Close SaveChanges:=True MsgBox "Yes! " & shtName & " is there in the workbook." _ , vbInformation, "Found" Exit Sub End If Next sht Application.ScreenUpdating = False MsgBox "No! " & shtName _ & " is not there in the workbook.", _ vbCritical, "Not Found" End Sub

Cuando ejecuta esta macro, abre el archivo en la parte posterior cuando deshabilitó la actualización de la pantalla y, una vez que revisa todas las hojas, tiene el código para habilitar la actualización de la pantalla. ‘pantalla.

Nota: Como puede ver, en la dirección de ubicación del archivo tenemos la extensión del archivo, lo que significa que debe tener la extensión de archivo correcta para consultarlo.

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *