powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление определенных листов
10 сообщений из 10, страница 1 из 1
Удаление определенных листов
    #34847665
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем
Мне нужен макрос который удалял бы все листы из книги кроме первого. Делаю так

Код: plaintext
1.
2.
3.
4.
5.
6.
    Application.DisplayAlerts = False

For j =  2  To Worksheets.Count
  Application.ActiveWorkbook.Sheets(j).Delete
Next j

    Application.DisplayAlerts = True

Вылетает ошибка и остаются два листа: который нужно оставить и тот, который почему-то не удалился. После очередного запуска макроса все становится как надо. Но вот как с первого раза удалить все ненужные листы.
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847714
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у вас в книге 3 листа, то после удаления второго третьего уже не существует, а вы пытаетесь его удалить.

Либо так

Код: plaintext
1.
2.
3.
4.
5.
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In ActiveWorkbook.Worksheets
  If sh.Index >  1  Then sh.Delete
Next
Application.DisplayAlerts = True

Либо так
Код: plaintext
1.
2.
3.
4.
5.
Dim j As Long
Application.DisplayAlerts = False
For j = ActiveWorkbook.Worksheets.Count To  2  Step - 1 
  ActiveWorkbook.Worksheets(j).Delete
Next j
Application.DisplayAlerts = True
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847716
LETME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...Я бы вместо вот этого:
Код: plaintext
1.
Application.ActiveWorkbook.Sheets(j).Delete

вставил вот это:
Код: plaintext
1.
Application.ActiveWorkbook.Sheets( 2 ).Delete

И всё бы заработало.
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847733
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad Ваш первый способ - это то, что нужно. Спасибо большое
LETME
Код: plaintext
Application.ActiveWorkbook.Sheets( 2 ).Delete
так удалится только второй лист, а не все кроме первого.
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847745
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andMegaMDeggasad Ваш первый способ - это то, что нужно. Спасибо большое
LETME
Код: plaintext
Application.ActiveWorkbook.Sheets( 2 ).Delete
так удалится только второй лист, а не все кроме первого.

Так удалятся именно все кроме первого, но всё же это через одно место...
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847746
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub test()
    Application.DisplayAlerts = False
    For j = Worksheets.Count To  2  Step - 1 
          Application.ActiveWorkbook.Sheets(j).Delete
    Next j
    Application.DisplayAlerts = True
End Sub
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847749
LETME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andMegaMDeggasad Ваш первый способ - это то, что нужно. Спасибо большое
LETME
Код: plaintext
Application.ActiveWorkbook.Sheets( 2 ).Delete
так удалится только второй лист, а не все кроме первого.

Еще раз повторю - если заменить строки кода, которые я привел, то получите следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Application.DisplayAlerts = False

For j =  2  To Worksheets.Count
  Application.ActiveWorkbook.Sheets( 2 ).Delete
Next j

Application.DisplayAlerts = True

Это приведёт к желаемому результату.
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847762
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Осмелюсь заметить Worksheets и Sheets не одно и то же
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847781
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad
но всё же это через одно место...
Это почему? Только потому, что не сразу уложилось в вашей голове?
Результат достигнут, с минимальным количеством кода. По-моему оригинально.
...
Рейтинг: 0 / 0
Удаление определенных листов
    #34847803
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor Deggasad
но всё же это через одно место...
Это почему? Только потому, что не сразу уложилось в вашей голове?
Результат достигнут, с минимальным количеством кода. По-моему оригинально.

У меня в голове уложилось сразу.
Возожно первое впечатдение и неправильное, беру свои слова обратно.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление определенных листов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]