У меня есть файл макроса с 5 листами, и я хотел бы добавить командную кнопку VBA в тот же файл, чтобы очистить все содержимое книги одним щелчком мыши. Кто-нибудь знает, как это сделать с помощью VBA на Excel 2010?
2 ответа
4
Очистка всех листов в рабочей книге:
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: см. Источник
Удаление их вместо очистки:
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
0
Просто, как показано ниже. Измените Sheet1, Sheet2 на имена ваших листов и добавьте столько этих трех строк, сколько вам нужно. Я предполагаю, что вы знаете, как создать ссылку в Excel и ссылку на макрос.
Sub ClearSheets()
Sheets("Sheet1").Select
Cells.Select
Selection.ClearContents
Sheets("Sheet2").Select
Cells.Select
Selection.ClearContents
End Sub