Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск и удаление листов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск и удаление листов (Макросы/Sub)
Поиск и удаление листов
maverick_77 Дата: Понедельник, 27.07.2015, 14:12 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Всем доброго дня!

Подскажите, пожалуйста, как сделать так, чтобы максрос сначала проверял - есть ли заданный лист (Лист "Дневной_отчёт") в книге, а если есть, удалял его?


если нельзя, но очень хочется, то можно!
 
Ответить
СообщениеВсем доброго дня!

Подскажите, пожалуйста, как сделать так, чтобы максрос сначала проверял - есть ли заданный лист (Лист "Дневной_отчёт") в книге, а если есть, удалял его?

Автор - maverick_77
Дата добавления - 27.07.2015 в 14:12
Roman777 Дата: Понедельник, 27.07.2015, 14:20 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
maverick_77,
[vba]
Код
Sub УдалЛист()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
   If sht.Name = "Дневной_отчёт" Then
      Application.DisplayAlerts = False
      sht.Delete
      Application.DisplayAlerts = True
   End If
Next sht
End Sub
[/vba]
Название листа: "Дневной_отчёт" должно полностью совпадать, если у Вас другое наименование, то поправьте в строчке:
[vba]
Код
  If sht.Name = "Дневной_отчёт" Then
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 27.07.2015, 14:21
 
Ответить
Сообщениеmaverick_77,
[vba]
Код
Sub УдалЛист()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
   If sht.Name = "Дневной_отчёт" Then
      Application.DisplayAlerts = False
      sht.Delete
      Application.DisplayAlerts = True
   End If
Next sht
End Sub
[/vba]
Название листа: "Дневной_отчёт" должно полностью совпадать, если у Вас другое наименование, то поправьте в строчке:
[vba]
Код
  If sht.Name = "Дневной_отчёт" Then
[/vba]

Автор - Roman777
Дата добавления - 27.07.2015 в 14:20
Manyasha Дата: Понедельник, 27.07.2015, 14:29 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Еще вариант, без перебора листов:[vba]
Код
Sub Макрос1()
     Dim sh As Worksheet
     On Error Resume Next
     Set sh = Sheets("Дневной_отчёт")
     If Not sh Is Nothing Then
         Application.DisplayAlerts = 0
         sh.Delete
         Application.DisplayAlerts = 1
     End If
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеЕще вариант, без перебора листов:[vba]
Код
Sub Макрос1()
     Dim sh As Worksheet
     On Error Resume Next
     Set sh = Sheets("Дневной_отчёт")
     If Not sh Is Nothing Then
         Application.DisplayAlerts = 0
         sh.Delete
         Application.DisplayAlerts = 1
     End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 27.07.2015 в 14:29
Roman777 Дата: Понедельник, 27.07.2015, 14:37 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Manyasha, а зачем тут:
[vba]
Код
If Not sh Is Nothing Then
[/vba] ?
Тут вообще можно поставить сразу:
[vba]
Код
Worksheets("Дневной_отчет").delete
[/vba] , нет?
получая:



Подскажите, пожалуйста, зачем эта проверка?


Много чего не знаю!!!!
 
Ответить
СообщениеManyasha, а зачем тут:
[vba]
Код
If Not sh Is Nothing Then
[/vba] ?
Тут вообще можно поставить сразу:
[vba]
Код
Worksheets("Дневной_отчет").delete
[/vba] , нет?
получая:



Подскажите, пожалуйста, зачем эта проверка?

Автор - Roman777
Дата добавления - 27.07.2015 в 14:37
Manyasha Дата: Понедельник, 27.07.2015, 14:42 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Roman777, незачем, сглупила :D


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеRoman777, незачем, сглупила :D

Автор - Manyasha
Дата добавления - 27.07.2015 в 14:42
maverick_77 Дата: Среда, 29.07.2015, 10:26 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Roman777, Manyasha, спасибо большое! Работает =)
' Какое же удовольствие доставляет ламеру типа меня видеть, как что-то "заработало!" =))))))) Сижу тычу в кнопку - смотрю, как листики удаляются =))) Какие-то детские ощущения =)

А можно ли аналогично поступать с целыми файлами: чтобы макрос проверял - открыт ли файл (с известным именем); если не открыт, то открывал его (опять же из заранее известной папки)?
Или этот вопрос надо задать в отдельно заведённом топике?
[moder]Это другой вопрос, значит - новая тема[/moder]


если нельзя, но очень хочется, то можно!

Сообщение отредактировал Pelena - Среда, 29.07.2015, 10:28
 
Ответить
СообщениеRoman777, Manyasha, спасибо большое! Работает =)
' Какое же удовольствие доставляет ламеру типа меня видеть, как что-то "заработало!" =))))))) Сижу тычу в кнопку - смотрю, как листики удаляются =))) Какие-то детские ощущения =)

А можно ли аналогично поступать с целыми файлами: чтобы макрос проверял - открыт ли файл (с известным именем); если не открыт, то открывал его (опять же из заранее известной папки)?
Или этот вопрос надо задать в отдельно заведённом топике?
[moder]Это другой вопрос, значит - новая тема[/moder]

Автор - maverick_77
Дата добавления - 29.07.2015 в 10:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск и удаление листов (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!