La mayoría de los comandos de Excel están disponibles para usar dentro de sus macros, siempre que conozca los comandos de VBA adecuados para realizar la tarea en cuestión. Puede utilizar el siguiente comando de macro para eliminar la hoja de trabajo activa:

ActiveSheet.Delete

Si emite el comando en su macro, encontrará que Excel pausa la macro y le pregunta si está seguro de que desea eliminar la hoja de trabajo.

Cuando hace clic en Sí, la hoja de trabajo se elimina y la macro se reanuda.

La idea detrás de las macros, por supuesto, es automatizar muchas de las tareas que realiza de forma regular. Detenerse y pedir confirmación puede ser el camino seguro a seguir, pero no ayuda mucho a la causa de la automatización. Si desea eliminar la hoja de trabajo sin pausa, hay un par de cosas que puede hacer. Primero, puede usar el método SendKeys para simular presionar la tecla Enter, que es lo mismo que hacer clic en Sí en el cuadro de diálogo de confirmación. Todo lo que necesita hacer es agregar una sola línea antes de la línea que elimina la hoja de trabajo:

Application.SendKeys ("{ENTER}")

ActiveSheet.Delete

SendKeys no hace más que rellenar las pulsaciones de teclas en el búfer del teclado, al igual que si las escribiera desde el teclado. Por lo tanto, la línea SendKeys debe preceder a la línea Delete para que la pulsación de la tecla Intro esté en el búfer antes de que sea necesaria.

Cualquier desarrollador de macros desde hace mucho tiempo puede señalar varios problemas potenciales con el uso de SendKeys, el problema principal es que no puede usarlo para especificar que está aceptando la opción Sí en el cuadro de diálogo de confirmación, y solo en ese cuadro de diálogo. Por poco probable que sea, si aparece algún otro cuadro de diálogo (quizás uno generado por un programa diferente) en el momento adecuado, la pulsación de la tecla Intro se aplicará a ese cuadro de diálogo, no al que esperaba.

Una mejor solución es desactivar las capacidades de alerta de Excel por un tiempo breve. Considere el siguiente código de macro:

Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True

Este código desactiva las alertas, elimina la hoja de trabajo y luego vuelve a activar las alertas. Mientras están apagados, Excel no mostrará el cuadro de diálogo de confirmación, pero actuará como si se hubiera mostrado y la opción predeterminada (Sí) seleccionada.

Es importante recordar la última línea de código que se muestra aquí. Si no vuelve a establecer la propiedad DisplayAlerts en True, Excel no mostrará más mensajes de alerta, incluso después de que la macro haya finalizado. Esto podría causar problemas, como puede imaginar. Es mejor configurarlo en Falso solo durante el breve período de tiempo que necesite que se desactiven las alertas.

Incluso con DisplayAlerts configurado en False, aún verá mensajes de error, si se genera uno. Por ejemplo, si ejecuta el código anterior y solo hay una hoja de trabajo en el libro de trabajo, aún verá un mensaje de error. (Esto sucede porque no puede eliminar la última hoja de trabajo de un libro de trabajo).

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2293) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.