¿cómo eliminar una hoja usando vba?

Para eliminar una hoja usando VBA, debe usar el método Eliminar VBA. Debe especificar la hoja que desea eliminar y luego utilizar este método. Digamos que si desea eliminar la «Hoja1», debe mencionar la hoja1, luego escribir un punto (.) y al final escribir «Eliminar».

En este tutorial, veremos diferentes formas que puede utilizar para eliminar una hoja usando código VBA. Asegúrese de tener la pestaña de desarrollador en la cinta desde aquí puede acceder al editor de base visual .

Eliminar una hoja usando su nombre

Cada hoja tiene un nombre y puede usar un código de escritura para eliminar una hoja usando el nombre. Entonces, digamos que desea eliminar la hoja de trabajo «Datos», el código sería:

 Sub vba_delete_sheet() Sheets("Data").Delete End Sub
escribir-código-eliminar

Eliminar una hoja sin previo aviso (mensaje)

Cuando elimina una hoja de trabajo, Excel muestra un mensaje para confirmar si desea eliminarla o cancelarla. Y cuando uses código VBA, en este caso Excel también lo hará.

cuadro de diálogo para confirmar la eliminación o cancelación

Para resolver este problema, puede desactivar la actualización de pantalla para eliminar una hoja y luego habilitarla.

 Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
desactivar alerta de diálogo

Nombre de la hoja de una celda.

Ahora digamos que desea usar un valor de celda para usar el nombre de la hoja de trabajo. En este caso, necesitará utilizar el objeto de rango de VBA para hacer esto.

usar-un-valor-de-celda-para-usar-el-nombre-de-la-hoja-de-trabajo

Eliminar hoja usando el número de hoja

Así es. Puede utilizar el número de hoja para eliminarlo. Aquí está el código.

 Sub vba_delete_sheet() Sheets(1).Delete End Sub
usar-número-de-hoja-para-eliminarla

Eliminar hoja activa

Para eliminar la hoja activa, puede usar el objeto «ActiveSheet» en lugar de usar el nombre de la hoja para especificar la hoja.

 ActiveSheet.Delete
eliminar-hoja-activa-usar-hoja-activa

Como dije, esto elimina la hoja activa y puedes activarla antes de eliminarla. Pero obviamente, no es necesario que hagas esto porque puedes consultar una hoja y eliminarla como vimos al principio de este tutorial.

Compruebe si la hoja existe antes de eliminarla

También puede escribir código de tal manera que pueda verificar si la hoja existe o no y luego eliminarla.

 Sub check_sheet_delete() Dim ws As Worksheet Dim mySheet As Variant mySheet = InputBox("enter sheet name") Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
escribir-código-para-verificar-si-la-hoja-existe

En este código tiene PARA CADA uno para recorrer todas las hojas de trabajo. Y luego, una DECLARACIÓN IF para eliminar la hoja si su nombre es igual al nombre que escribió en el cuadro de entrada.

Eliminar todas las hojas de trabajo del libro de trabajo

Estoy seguro de que tienes esta pregunta en mente, pero me temo que es imposible eliminar todas las hojas de trabajo que tienes en el libro. Te queda al menos una hoja de trabajo.

Pero encontré una solución a este problema. Puede insertar una nueva hoja en blanco y luego eliminar todas las que ya están allí.

Aquí está el código: Este código agrega una nueva hoja y elimina todas las demás hojas.

 Sub vba_delete_all_worksheets() Dim ws As Worksheet Dim mySheet As String mySheet = "BlankSheet-" & Format(Now, "SS") Sheets.Add.Name = mySheet Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If ws.Name <> mySheet Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub

Añadir un comentario

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