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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2014, 11:27   #1
Parklane1488
Пользователь
 
Регистрация: 21.08.2014
Сообщений: 15
По умолчанию Удаление листов с помощью like

Всем добрый день!

Мне нужно, чтобы макрос удалял все листы, содержащие слово Лист. В Excel файле вкладок очень много, и поэтому удалив все вкладки, содержащие слово "Лист" в файле останутся ещё вкладки(то есть ошибку не выдаст, что нельзя удалить последний лист)

Есть следующий макрос, но он не работает почему то.
PHP код:
Sub Удаление_вкладок()
Dim del As Worksheet

For Each del In ThisWorkbook.Sheets
        
If del.Name Like "*Лист" Then
            
If ThisWorkbook.Sheets.Count 1 Then
                MsgBox 
"Это единственная вкладка в книге, и её удалить я не могу"
            
Else
                
Application.DisplayAlerts False
                del
.Delete
                Application
.DisplayAlerts True
            End 
If
        
End If
    
Next
End Sub 
Parklane1488 вне форума Ответить с цитированием
Старый 02.09.2014, 11:33   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Есть следующий макрос, но он не работает почему то.
а что не работает-то?
с виду, в коде всё правильно

можно попробовать заменить "*Лист" на "*Лист*"

ну и самой верхней строкой в модуле (над всеми макросами) добавить строку
Option Compare Text
чтобы регистр символов слова «Лист» не учитывался
EducatedFool вне форума Ответить с цитированием
Старый 02.09.2014, 12:26   #3
Parklane1488
Пользователь
 
Регистрация: 21.08.2014
Сообщений: 15
По умолчанию

Добавил как Вы сказали * в конец и выдаёт моё сообщение, что вкладка единственная и удалить не получается.
Хотя у меня куча других вкладок в файле.
Не пойму где ошибся.
Parklane1488 вне форума Ответить с цитированием
Старый 02.09.2014, 14:15   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

допускаю что Вы хотите удалить листы из ActiveWorkbook (активной книги, той, в которую смотрите в данным момент глазами), а в макросе написано удалять листы с ThisWorkbook (из книги содержащей макрос)
так все становиться на свои места. в книге с макросм после первого запуска макроса остался 1 лист, о чем и сообщает макрос при каждом следующем запуске

дело в том, что Ексель не знает о чем Вы думаете чего Вы хотите, а делает то, что Вы написали в макросе

переменные ThisWorkbook и ActiveWorkbook не обязательно должны ссылаться на одну и ту же книгу
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.09.2014, 14:36   #5
Parklane1488
Пользователь
 
Регистрация: 21.08.2014
Сообщений: 15
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
допускаю что Вы хотите удалить листы из ActiveWorkbook (активной книги, той, в которую смотрите в данным момент глазами), а в макросе написано удалять листы с ThisWorkbook (из книги содержащей макрос)
так все становиться на свои места. в книге с макросм после первого запуска макроса остался 1 лист, о чем и сообщает макрос при каждом следующем запуске

дело в том, что Ексель не знает о чем Вы думаете чего Вы хотите, а делает то, что Вы написали в макросе

переменные ThisWorkbook и ActiveWorkbook не обязательно должны ссылаться на одну и ту же книгу
Огромнейшее Вам спасибо за помочь и консультацию.
Заменил ThisWorkbook на ActiveWorkbook и всё получилось.
Ещё раз благодарю за помощь.
Parklane1488 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление на несколько листов в эксель с помощью дельфи Azrael2155 БД в Delphi 7 05.11.2013 14:48
Создание и удаление листов Lexey_fan Microsoft Office Excel 0 09.06.2011 08:59
удаление листов в книге evdss Microsoft Office Excel 3 28.12.2010 11:55
Удаление листов Chip&Dale Microsoft Office Excel 3 03.10.2010 14:06
Удаление листов в книге по определённым условиям inside9 Microsoft Office Excel 2 07.08.2009 13:37