Una macro de Excel para borrar todo menos la hoja de trabajo activa

  1. Software
  2. Oficina de Microsoft
  3. Excel
  4. Una macro de Excel para borrar todo menos la hoja de trabajo activa

Libro Relacionado

Macros de Excel para tontos

Por Michael Alexander

A veces, es posible que desee eliminar todas las hojas de trabajo activas de un libro de trabajo de Excel. En estas situaciones, puede utilizar la siguiente macroinstrucción.

Cómo funciona la macro

La macro se desplaza por las hojas de trabajo, haciendo coincidir cada nombre de hoja de trabajo con el nombre de la hoja activa. Cada vez que la macro hace un bucle, borra cualquier hoja de trabajo sin igual. Observe el uso de la propiedad DisplayAlerts en el paso 4. Esto desactiva efectivamente las advertencias de Excel para que no tenga que confirmar cada eliminación.

SubMacro1()'Paso 1: Declarar sus variables Dim ws Como Hoja de Trabajo'Paso 2: Comenzar a recorrer todas las hojas de trabajo Para Cada ws En EsteLibro.Hojas de Trabajo'Paso 3: Revisar el nombre de cada hoja de trabajo Si ws.Name <> EsteLibro.ActiveSheet.Name Entonces'Paso 4: Desactivar advertencias y borrar Aplicación.DisplayAlerts = Falso ws.Delete Application.DisplayAlerts = Verdadero Fin Si'Paso 5: Dar vueltas a la siguiente hoja de trabajo Siguiente wsEnd Sub Hoja

La macro primero declara un objeto llamado ws. Este paso crea un contenedor de memoria para cada hoja de trabajo que recorre.

En el Paso 2, la macro comienza a bucear, diciéndole a Excel que evaluará todas las hojas de trabajo de este libro de trabajo. Hay una diferencia entre ThisWorkbook y ActiveWorkbook. El objeto ThisWorkBook se refiere al libro de trabajo que contiene el código. El objeto ActiveWorkBook se refiere al libro de trabajo actualmente activo. A menudo devuelven el mismo objeto, pero si el libro de trabajo que ejecuta el código no es el libro de trabajo activo, devuelven objetos diferentes. En este caso, no quieres arriesgarte a borrar hojas de otros libros de trabajo, así que utiliza ThisWorkBook.

En el Paso 3, la macro simplemente compara el nombre de la hoja activa con la hoja que está siendo enlazada.

En el paso 4, si los nombres de las hojas son diferentes, la macro borra la hoja. Como ya se ha mencionado, se utiliza DisplayAlerts para suprimir cualquier verificación de confirmación de Excel. Si desea que se le avise antes de eliminar las hojas, puede omitir la Aplicación. DisplayAlerts = Falso. Omitiendo la declaración de DisplayAlerts se asegurará de que obtenga el mensaje que se muestra, permitiéndole retroceder en la decisión de eliminar hojas de trabajo.

En el paso 5, la macro se desplaza hacia atrás para obtener la siguiente hoja. Después de evaluar todas las hojas, la macro termina.

Omita la declaración de DisplayAlerts para ver los mensajes de advertencia.

Cómo utilizar la macroinstrucción

Para implementar esta macro, puede copiarla y pegarla en un módulo estándar:

  1. Active Visual Basic Editor presionando Alt+F11.
  2. Haga clic con el botón derecho del ratón en el nombre del proyecto o libro de trabajo en la ventana del proyecto.
  3. Elija Insert→Module
  4. Escriba o pegue el código en el módulo recién creado.

Cuando utiliza ThisWorkbook en lugar de ActiveWorkbook en una macro, no puede ejecutar la macro desde el libro de trabajo de macro personal. Por qué? Porque EsteCuaderno de Trabajo se referiría al cuaderno de trabajo de macros personales, no al cuaderno de trabajo al que debería aplicarse la macro.

Leave a Reply

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