Un excel macro para eliminar todos menos la hoja de cálculo activa
A veces, es posible que desee eliminar todos pero la hoja de cálculo activa en un libro de Excel. En estas situaciones, puede utilizar la siguiente macro.
Cómo funciona el macro
La macro aquí recorre las hojas de trabajo, haciendo coincidir el nombre de cada hoja de trabajo para el nombre de la hoja activa. Cada vez que los bucles de macro, elimina cualquier hoja de cálculo sin igual. Observe el uso de la propiedad DisplayAlerts en el paso 4. Esta se convierte efectivamente fuera de las advertencias de Excel para que usted no tiene que confirmar cada eliminación.
Sub Macro1 () 'Paso 1: Declare sus ws variablesDim Como Worksheet'Step 2: Inicio de bucle a través de todos worksheetsFor Cada ws En ThisWorkbook.Worksheets'Step 3: Compruebe cada hoja nameif ws.Name lt;> ThisWorkbook.ActiveSheet.Name Then'Step 4: Apague advertencias y deleteApplication.DisplayAlerts = Falsews.DeleteApplication.DisplayAlerts = TrueEnd If'Step 5: Loop hasta el siguiente worksheetNext wsEnd Sub
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 lazo, diciendo Excel evaluará todas las hojas de trabajo en este libro. Hay una diferencia entre ThisWorkbook y ActiveWorkbook. El objeto ThisWorkbook se refiere al libro que contiene el código. El objeto ActiveWorkbook hace referencia al libro activo actualmente. A menudo devuelven el mismo objeto, pero si el libro que ejecuta el código no es el libro activo, vuelven diferentes objetos. En este caso, usted no quiere correr el riesgo de eliminar hojas en otros libros de trabajo, por lo que utilizar ThisWorkbook.
En el paso 3, la macro simplemente compara el nombre de la hoja activa a la hoja que se está actualmente en bucle.
En el paso 4, si los nombres de las hojas son diferentes, la macro elimina la hoja. Como se ha mencionado, se utiliza DisplayAlerts para suprimir todas las comprobaciones de confirmación de Excel. Si desea que se le avise antes de eliminar las hojas, se puede omitir la aplicación. DisplayAlerts = False. La omisión de la declaración DisplayAlerts se asegurará de que usted consigue el mensaje se muestra, lo que permite realizar copias de la decisión de eliminar las hojas de trabajo.
En el paso 5, los bucles macro atrás para obtener la siguiente hoja. Después se evalúan todas las hojas, finaliza la macro.
Cómo utilizar la macro
Para implementar esta macro, puede copiar y pegarlo en un módulo estándar:
Activar el Editor de Visual Basic presionando Alt + F11.
derecha, haga clic en el nombre del proyecto / libro en la ventana del proyecto.
Seleccione Insertar-Module.
Escriba o pegue el código en el módulo recién creado.
Cuando se utiliza en lugar de ThisWorkbook ActiveWorkbook en una macro, no se puede ejecutar la macro desde el libro de macros personal. ¿Por qué? Debido ThisWorkbook se referiría al libro de macros personal, no para el libro en el que se debe aplicar la macro.