Contenido
- 1 Cómo funciona en VBA
- 2 Eliminar la hoja sin mostrar el mensaje de confirmación
- 3 Eliminar hoja por nombre (si existe) usando VBA
- 4 Eliminar todas las hojas excepto la hoja activa usando VBA
- 5 Eliminar todas las hojas con una cadena de texto específica en el nombre
- 6 Conoce nuestra tienda
- 7 Mejora tu nivel y logra tus objetivo
- 8 Ayúdanos a hacer crecer el proyecto
Cuando se trata de eliminar una hoja, o un par de hojas de trabajo, es mejor usar los métodos mencionados anteriormente.
Cómo funciona en VBA
VBA puede automatizar el proceso, es útil cuando tiene que repetir la tarea varias veces.
A continuación se muestra el código VBA que eliminará la hoja activa:
Sub Borrar()
ActiveSheet.Delete
End Sub
Cuando use el código anterior para eliminar la hoja activa, Excel le mostrará un mensaje en el que tendrá que hacer clic en el botón Eliminar para confirmar la acción.
Eliminar la hoja sin mostrar el mensaje de confirmación
El cuadro de mensaje de aviso de confirmación es una función útil que asegura que tenga la oportunidad de cancelar la eliminación de la hoja en caso de que haya ejecutado el código accidentalmente / erróneamente
Pero si ya sabe lo que está haciendo, recibir este mensaje puede resultar bastante irritante.
así que aquí está el código VBA que se aseguraría de que las hojas se eliminen, pero no verá ningún cuadro de mensaje de confirmación.
Sub Borrar()
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
En el código anterior, establecí la propiedad Application.DisplayAlerts en falso, lo que significa que Excel no le mostrará ninguna alerta de pantalla mientras se ejecuta el código.
También es muy importante asegurarse de volver a convertirlo en verdadero al final del código para restaurar la funcionalidad (como puede ver, lo he hecho en el código anterior).
Precaución: Cuando establezca la propiedad Application.DisplayAlerts en falso, Excel simplemente eliminará la hoja de trabajo y no habrá forma de recuperarla. así que le aconsejo que haga una copia de seguridad antes de utilizar este tipo de código.
Eliminar hoja por nombre (si existe) usando VBA
VBA le permite automatizar el proceso de eliminación de una hoja de trabajo específica (en varias hojas de trabajo) según el nombre de la hoja.
Por ejemplo, si tiene una hoja de trabajo con el nombre ‘Productos’, puede usar el siguiente código para eliminarla:
Sub Borrarpornombre()
Sheets("Productos").Delete
End Sub
Este código solo eliminaría la hoja que tiene el nombre Productos.
Es útil cuando tiene un libro de trabajo con muchas hojas y no desea examinar todas las hojas de trabajo, busque la que tiene el nombre ventas y elimínela manualmente.
Con el código anterior, no importa cuántas hojas de trabajo haya en el libro de trabajo, simplemente eliminaría la hoja de trabajo de Productos.
Y dado que no he cambiado la propiedad Application.DisplayAlert, verá un mensaje en el que tendrá que hacer clic en el botón Eliminar para confirmar la duración de la hoja de ventas.
En caso de que desee eliminar varias hojas según su nombre, también puede hacerlo.
Por ejemplo, el siguiente código eliminaría las hojas con el nombre Ventas, Marketing, Finanzas:
Sub Borrarpornombre()
Sheets("Productos").Delete
Sheets("Proveedores").Delete
Sheets("Clientes").Delete
End Sub
Eliminar todas las hojas excepto la hoja activa usando VBA
Si tiene un libro de trabajo con varias hojas de trabajo y desea eliminar todas las hojas de trabajo excepto la hoja activa, VBA es probablemente uno de los mejores métodos para hacer esto.
A continuación se muestra el código de VBA que eliminaría todas las hojas excepto la hoja activa en el libro de
Sub Borrartodo()
Dim ws As Worksheet
Application.DisplayAlerts = False
For Each ws In Sheets
If ws.Name <> ActiveSheet.Name Then
ws.Delete
End If
Next ws
Application.DisplayAlerts = True
End Sub
Tenga en cuenta que he dicho que la propiedad Application.DisplayAlerts se encuentra al principio del código, ya que no quiero ver un mensaje para cada hoja que se elimina.
Eliminar todas las hojas con una cadena de texto específica en el nombre
Este es un caso de uso un poco más avanzado de usar VBA de manera efectiva al eliminar hojas de trabajo.
Suponga que tiene un libro de trabajo con muchas hojas de trabajo diferentes y desea eliminar todas las hojas de trabajo que tienen una cadena de texto específica, entonces puede hacerlo fácilmente usando VBA.
Por ejemplo, a continuación tengo un libro de trabajo en el que quiero eliminar todas las hojas de trabajo que tienen la cadena de texto «Productos» en ellas.
A continuación se muestra el código VBA que haría eso:
Sub Borrartodo()
Dim ws As Worksheet
Application.DisplayAlerts = False
For Each ws In Sheets
If ws.Name Like "*" & "Productos" & "*" Then
MsgBox ws.Name
ws.Delete
End If
Next ws
Application.DisplayAlerts = True
End Sub
El código anterior usa la instrucción if-then para revisar todas las hojas de trabajo en el libro de trabajo. Comprueba el nombre de todas estas hojas de trabajo y si el nombre contiene la palabra «Productos», esa hoja de trabajo se elimina.
Si desea cambiar el código y buscar cualquier otra cadena de texto, puede cambiar eso en la quinta línea del código anterior.
También tenga en cuenta que he usado un asterisco (*), que es un carácter comodín , en ambos lados de la cadena de texto que estamos buscando en el nombre de la hoja de trabajo. Esto asegura que no importa dónde aparezca la cadena en el nombre de la hoja de trabajo, aún se eliminará.
Estos son algunos de los métodos que puede utilizar cuando desee eliminar hojas en Excel. En la mayoría de los casos, puede hacer esto fácilmente dentro de la hoja de trabajo usando el mouse o el atajo de teclado.
Pero en caso de que tenga un libro de trabajo pesado con muchas hojas de trabajo y desee eliminar rápidamente tipos específicos de hojas, también puede usar VBA.