Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Удалить ненужные листы
 
Доброго времени суток!
Есть файл, который при закрытии скрывает листы (очень скрытый) макросы запаролены.
В файле сводные таблицы, которые двойным щелчком раскрывают содержимое в новый лист. дальше зарывают и созданные листы скрываются. тем самым увеличивая вес файла.
Собственно вопрос: как добавить на событие закрытия УДАЛЕНИЕ всех листов в книге которые имеют название Лист1, Лист2 и т.д. я могу прописать удаление с конкретным названием, только вот сколько будет таких листов (Лист1...Лист*...) ? всегда разное, количество.
Прошу прощения, Немного витиевато получилось...
Пример во вложении.

Бессмысленно осмысливать смысл неосмысленными мыслями.
 
Цитата
ivan31888 написал:
макросы запаролены
В книге всего один макрос. На событие закрытия книги. И в нём есть цикл перебора листов, в котором листы скрываются. Вместе управления видимостью напишите удаление.
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim wsSh As Worksheet
    Sheets("Нужный").Visible = -1
    For Each wsSh In ThisWorkbook.Sheets
        If wsSh.Name <> "Нужный" Then wsSh.Delete
    Next wsSh
    ThisWorkbook.Save
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
 
Юрий М, Спасибо!
Цитата
Юрий М написал: В книге всего один макрос.
В книге макросов много. для примера (форума) оставил один, который нужен.

Цитата
Юрий М написал: Вместе управления видимостью напишите удаление.
Но мне необходимо удалять только те листы которые имеют название "Лист1 ...ЛистN".
помимо листа "Нужный" есть и другие которые должны также остаться. (в примере "Нужный2")
Цикл для скрытия листов так же должен остаться. Нужно удаление только "Лист1" и т.д.

вот как-то так...

Бессмысленно осмысливать смысл неосмысленными мыслями.
 
Тогда измените проверку: если имя листа начинается с "Лист", то удалять:
Код
If wsSh.Name Like "Лист*" Then wsSh.Delete
 
Спасибо! то что нужно!
Тема закрыта...

Бессмысленно осмысливать смысл неосмысленными мыслями.
Страницы: 1
Читают тему (гостей: 1)
Наверх