Cómo eliminar hojas sin solicitudes de confirmación mediante VBA en Excel

Hay momentos en que tenemos que crear o agregar una hoja y más tarde encontramos que no se usa esa hoja, por lo tanto, tenemos que eliminar la hoja rápidamente del libro de trabajo. Este artículo se centra en ahorrar tiempo y proporcionar código para eliminar hojas sin ningún cuadro de mensaje de solicitud usando macro / código vba. Podría ser una hoja o varias. Y Excel da una alerta emergente para confirmar la eliminación de la hoja. Si es una hoja, es manejable. Pero si tiene que eliminar varias hojas, obtendrá una ventana emergente por hoja.

A menudo se crean varias hojas utilizando VBA. Pero al final, no los necesitas realmente. Desea eliminarlos después de que termine su trabajo. Mantendrá su archivo más ligero, más rápido y sensible.

El código VBA para eliminar una hoja es simple

Hojas("SheetName").Eliminar

Digamos que tiene este código para agregar una hoja y luego eliminarla cuando termine el trabajo.

 

Sub AddAndDeleteSheet()

Hoja.Add 'Agrega una nueva hoja al libro activo

'----

'----

'----

trabajo en hoja hecha

ActiveSheet.Eliminar 'elimina el Activesheet activo

Final Sub

Al ejecutar este código, Hojas.Add funcionará sin ningún aviso, pero cuando el compilador llegue a ActiveSheet.Eliminarlo le pedirá un mensaje como este.

Como está eliminando hojas usando VBA, sabe lo que está haciendo. Le gustaría decirle a Excel que no muestre esta advertencia y elimine la maldita hoja.

Para ello vamos a apagar el botón de alerta de visualización de la aplicación de Excel.

El siguiente código omitirá este mensaje de alerta y la hoja se eliminará sin ninguna indicación.

 

Sub AddAndDeleteSheet()

Aplicación.MostrarAlertas = False 'desactivando el botón de alerta

Hoja.Añadir

'----

'----

'----

trabajo en hoja hecha

ActiveSheet.Eliminar

Aplicación.MostrarAlertas = True 'cambiar el botón de alerta

Final Sub

Aquí estamos eliminando Activesheet usando VBA. Puede eliminar cualquier hoja usando VBA. Simplemente escriba Sheets("Sheetname").eliminar. Seguir adelante...

DisplayAlerts es una propiedad del objeto Application en VBA. Aquí estamos apagar al principio de nuestro código y encenderlo al final del código. El código anterior confirmará la eliminación sin ninguna insinuación.

Nota: El código anterior ignorará todas las advertencias lanzadas por Excel. Si desea permitir solo la eliminación de hojas, use esta línea.

Aplicación.DisplayAlerts = False 'desactivando el botón de alerta

ActiveSheet.Eliminar

Aplicación.MostrarAlertas = True 'cambiar el botón de alerta

Esto ignorará solo la advertencia de eliminación de hojas.

Consejo profesional: estas líneas de código hacen que su código VBA sea más eficiente. Siempre úselos al comienzo de su macro y vuelva a encenderlos donde sea que se espere que su código salga de la rutina.

Advertencia: Si no se enciende antes de salir de la subrutina, es posible que no vea ninguna advertencia en absoluto. Incluso si su código no se está ejecutando. Esto puede causar muchos problemas.

Si tiene varias hojas para eliminar y está utilizando un bucle, pruebe este código –

 

Opción Explícita
Sub macro2()
Dim i como largo
Aplicación.MostrarAlertas = Falso
Para i = 1 a Hojas de trabajo.Contar
Si Worksheets(i).Name Like "Test*" Entonces Worksheets(i).Eliminar
Siguiente i
Aplicación.MostrarAlertas = Verdadero
Final Sub

Eso es todo. Está hecho. Es fácil como encender y apagar el ventilador. ¿No es así?

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.