Страницы: 1
RSS
Макрос На Удаление Всех Листов кроме указанных
 
В файле кнопка на листе1    
как удалить листы все кроме лист1,Лист4,Лист2
 
Поместите этот код в общий модуль:  
Sub DeleteSheets()  
Dim i As Long  
Application.DisplayAlerts = False  
   For i = Sheets.Count To 1 Step -1  
       If Sheets(i).Name <> "Лист4" Then  
           If Sheets(i).Name <> "Лист1" Then  
               If Sheets(i).Name <> "Лист2" Then  
                   Sheets(i).Delete  
               End If  
           End If  
       End If  
   Next  
Application.DisplayAlerts = True  
End Sub  
В принципе можно условие писать и в одну длинную строку:  
ЕСЛИ не равно ... ИЛИ если не равно... ИЛИ ...
 
А я просто дописал код для кнопки:  
 
Private Sub CommandButton1_Click()  
Dim sh  
Application.DisplayAlerts = False  
For Each sh In Sheets  
If InStr(1, "лист1\Лист4\Лист2", sh.Name, vbTextCompare) = 0 Then sh.Delete  
Next  
Application.DisplayAlerts = True  
End Sub  
 
Названия листов в списке должны быть разделены символом, который не может содержаться в названии листа.
 
Дмитрий, спасибо за замечение!  
Но и это не поможет.  
Если в списке будет ...\Лист44\..., то удалится и "Лист4", и "Лист", и "ист" и т.д.  
 
Надо так:  
 
If InStr(1, "\лист1\Лист4\Лист2\", "\" & sh.Name & "\", vbTextCompare) = 0 Then sh.Delete
Страницы: 1
Читают тему
Loading...