• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

For x = 1 To Worksheets.Count ile sayfa silme

  • Konbuyu başlatan Konbuyu başlatan conari
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Mart 2007
Mesajlar
603
Excel Vers. ve Dili
2003
Makro mu çalıştırmadan önce Belgede iki sayfa hariç diğerlerini silmek istiyorum.

Fakat "Subscript out of range" hatası alıyorum bu hatayı bir türlü gideremedim. Aslında Oruçtan dolayı beynim de yavaş yavaş durdu.

Cevaplar için Teşekkürler

Kod:
ilkedön:
If Worksheets.Count > 2 Then
    For x = 1 To Worksheets.Count
    On Error GoTo ilkedön:
Namem = Worksheets(x).Name
  On Error Resume Next
       If Namem = "FATURA" Then GoTo son:
       If Namem = "LOGIN" Then GoTo son:
       Worksheets(x).Delete
son:
     Next
  End If
 
Merhaba

For x = 1 To Worksheets.Count

satırını

For x = Worksheets.Count to 1 Step -1

olarak değiştirin.

Çünkü her sildiğinizde Workseets.count aynı kalıyor. Hatayı o yüzden alıyorsunuz
 
Rica ederim.

Aşağıdaki kodlar biraz daha kısa.

Kod:
Public Sub SayfaSil()
Application.DisplayAlerts = False
For i = Worksheets.Count To 1 Step -1
    If Sheets(i).Name <> "FATURA" And Sheets(i).Name <> "LOGIN" Then Sheets(i).Delete
Next i
End Sub
 
Merhaba,

Belki aynı işi yapıyor ama farklı bir bakış açısı olur diye gönderdim.
Kod:
Sub Sil()
    Dim WSh As Worksheet
    
    Application.DisplayAlerts = False
    
    For Each WSh In Worksheets
        Select Case WSh.Name
            Case "FATURA", "LOGIN"
                
            Case Else
                WSh.Delete
        End Select
    Next
    
    Application.DisplayAlerts = True
End Sub
 
Geri
Üst