Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2011, 09:00   #11
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Код:
Sub ggg()
Dim i&
    Application.DisplayAlerts = False
    For i = Worksheets.Count To 1 Step -1
        With Sheets(i)
            If .Name Like "*Изменения ассигнов*" Or .Name Like "Изменения лимитов*" Or _
               .Name Like "*Изменения общий*" Or .Name Like "*СВОД_Изменения ассигнов*" Or _
               .Name Like "*СВОД_Изменения общий*" Then .Delete
        End With
    Next
    Application.DisplayAlerts = True
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 02.09.2011 в 09:09.
kuklp вне форума Ответить с цитированием
Старый 02.09.2011, 10:08   #12
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

kuklp Спасибо. Понятно . Теперь все получилось.


Hugo121, R Dmitry, kuklp СПАСИБО!
АННА-ЕАО вне форума Ответить с цитированием
Старый 02.09.2011, 11:02   #13
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не люблю And or OR

Код:
Sub tt()
Dim i&
    Application.DisplayAlerts = False
    For i = Worksheets.Count To 1 Step -1
        With Sheets(i)
        Select Case True
        Case .Name Like "бух.уч.(лимиты)-МДОУ*"
        Case .Name Like "*СВОД_Изменения лимитов*"
        Case Else: .Delete
        End Select
        End With
    Next
    Application.DisplayAlerts = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.09.2011, 11:31   #14
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

Hugo121 Простите, а что значить не любите?
Hugo121 СПАСИБО! Верно ли я поняла, что благодаря Вашему макросу в книге удаляются все листы кроме тех в названиях которых содержится "определенный текст" ?

Да, в данном случае это удобней. Так как тех листов которые нужно оставить гораздо меньше, чем тех которые необходимо удалить.

Но если соотношение будит другим, может макросом от kuklp будет пользоваться целесообразней?

Или я не права?
АННА-ЕАО вне форума Ответить с цитированием
Старый 02.09.2011, 11:38   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну в случае AND/OR проверяются все варианты, что замедляет код.
В Вашем случае это мизер, но если такая проверка делается в цикле тысячи раз, то оно заметно.
Да и код выглядит как-то непрозрачно...
И да, Вы правильно поняли - удаляются все другие листы, не прошедшие через "сито".
Можно по этому принципу и наоборот сделать:
Код:
Sub tt()
Dim i&
    Application.DisplayAlerts = False
    For i = Worksheets.Count To 1 Step -1
        With Sheets(i)
        Select Case True
        Case .Name Like "бух.уч.(лимиты) (*": .Delete
        Case .Name Like "*Изменения ассигнований*": .Delete
        ' и т.д.
        End Select
        End With
    Next
    Application.DisplayAlerts = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.09.2011, 11:59   #16
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

Hugo121 Понятно. Спасибо ещё раз. Буду пользоваться.
АННА-ЕАО вне форума Ответить с цитированием
Старый 22.09.2015, 08:56   #17
OldSdis
Новичок
Джуниор
 
Регистрация: 21.09.2015
Сообщений: 1
Радость

Цитата:
Сообщение от gluk_fm Посмотреть сообщение
В вложении, просто в цикл (if ....... & end if)так же допишите только те листы которые не нужно удалять.
Тут то что нужно. Работает отлично. Просто нужно в цикле указать Имя каждого листа который необходимо сохранить

Спасибо за полезную вещь
OldSdis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос удаления пустых ячеек и листов книги sna1 Microsoft Office Excel 2 04.05.2011 20:49
Размер шрифта в названиях листов szs Microsoft Office Excel 0 24.08.2010 11:53
Выборка записей в поле которых содержится значение nuul Lokos БД в Delphi 1 05.08.2010 08:23
поиск в названиях листов с любой ячейки Окоча Юра Microsoft Office Excel 7 21.01.2010 00:34
DOS команда для удаления всех файлов, имена которых содержат цифры Samopal Операционные системы общие вопросы 1 23.12.2008 21:12