Macro para limpiar todas las hojas de un libro de trabajo (VBA - Excel 2010)

1

Tengo un archivo de macro con 5 hojas y me gustaría agregar un botón de comando VBA en el mismo archivo para limpiar todos los contenidos del libro de trabajo con un solo clic. ¿Alguien sabe cómo hacerlo utilizando VBA en Excel 2010?

NT.
fuente
¿Qué quiere decir con los contenidos del libro de trabajo limpio?
CLockeWork
Elimine todos los valores (es decir, los contenidos) y el formato de todas las hojas en el libro de trabajo
NT.

Respuestas:

4

Borrar todas las hojas de un libro de trabajo:

Sub ClearAll()

    Set wbook = ActiveWorkbook

    For Each sht In wbook.Worksheets
       sht.Activate
       sht.Cells.Select
       Selection.ClearContents
       Selection.ClearFormats ' edit: clear formats too
       sht.Cells(1, 1).Select ' edit: select the first cell to cancel selection of the whole sheet
    Next sht


End Sub

Edit1: ver fuente

Eliminarlos en lugar de limpiarlos:

Sub DeleteAll()

    bAlerts = Application.DisplayAlerts
    Application.DisplayAlerts = False

    Set wbook = ActiveWorkbook

    wbook.Sheets(1).Activate

    For Each sht In wbook.Worksheets
        If sht.Name = wbook.ActiveSheet.Name Then ' we don't delete the active sheet but just its conntet
            sht.Cells.Select
            Selection.ClearContents
            Selection.ClearFormats
            sht.Cells(1, 1).Select
        Else
            sht.Activate
            ActiveWindow.SelectedSheets.delete
            wbook.Sheets(1).Activate
        End If
    Next sht

    wbook.ActiveSheet.Name = "Sheet1" ' we rename the last remaining sheet to the default name

    Application.DisplayAlerts = bAlerts

End Sub
marsh-wiggle
fuente
Gracias funciona como un encanto. También he agregado "Selection.ClearFormats" para borrar también el formato en todas las hojas ...
NT.
0

Simple como abajo. Cambie la Hoja1, Hoja2 a los nombres de sus Hojas y agregue tantas de esas 3 líneas como sea necesario. Supongo que usted sabe cómo vincular crear un botón en Excel y vincular a una macro.

Sub ClearSheets()
    Sheets("Sheet1").Select
    Cells.Select
    Selection.ClearContents

    Sheets("Sheet2").Select
    Cells.Select
    Selection.ClearContents
End Sub
Brian Folan
fuente
gracias, pero la anterior es más práctica, no hay necesidad de configurar cada hoja.
NT.