Примерно, так-же как вы чистите руками. Вот, пробуйте:
[vba]
Код
Public Sub Oll_Clear() ' 'чистит всё вне таблицы. Dim rng1 As Range, rng2 As Range Dim lLastRow As Long, lLastCol As Long
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row ' нижняя строка таблицы lLastCol = Cells(1, Columns.Count).End(xlToLeft).Column ' самый правый столбец таблицы
Set rng1 = Range(Cells(1, lLastCol + 1), Cells(1048576, "XFD")) 'всё что правее таблицы Set rng2 = Range(Cells(lLastRow + 1, 1), Cells(1048576, "XFD")) ' всё что ниже таблицы
rng1.Clear 'Удаляем формулы, значения и форматирование ячеек в диапазоне. rng2.Clear 'аналогично 'лишнее можно скрыть, "с глаз долой", если желаете. '*прим. сокрытие не удаляет содержимое, поэтому само по себе файл не облегчает, но внешний вид улучшает. rng1.EntireColumn.Hidden = False ' чтобы скрыть столбцы справа от таблицы , False заменить на True rng2.EntireRow.Hidden = False ' чтобы скрыть строки ниже таблицы , False заменить на True
End Sub
[/vba]
Если подключить этот макрос к событию "Активация листа", то будет чистить каждый раз когда вы лист открываете.
Примерно, так-же как вы чистите руками. Вот, пробуйте:
[vba]
Код
Public Sub Oll_Clear() ' 'чистит всё вне таблицы. Dim rng1 As Range, rng2 As Range Dim lLastRow As Long, lLastCol As Long
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row ' нижняя строка таблицы lLastCol = Cells(1, Columns.Count).End(xlToLeft).Column ' самый правый столбец таблицы
Set rng1 = Range(Cells(1, lLastCol + 1), Cells(1048576, "XFD")) 'всё что правее таблицы Set rng2 = Range(Cells(lLastRow + 1, 1), Cells(1048576, "XFD")) ' всё что ниже таблицы
rng1.Clear 'Удаляем формулы, значения и форматирование ячеек в диапазоне. rng2.Clear 'аналогично 'лишнее можно скрыть, "с глаз долой", если желаете. '*прим. сокрытие не удаляет содержимое, поэтому само по себе файл не облегчает, но внешний вид улучшает. rng1.EntireColumn.Hidden = False ' чтобы скрыть столбцы справа от таблицы , False заменить на True rng2.EntireRow.Hidden = False ' чтобы скрыть строки ниже таблицы , False заменить на True
End Sub
[/vba]
Если подключить этот макрос к событию "Активация листа", то будет чистить каждый раз когда вы лист открываете.al-Ex
Сообщение отредактировал al-Ex - Понедельник, 28.03.2016, 21:38