• DİKKAT

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

Sayfa varsa sil

  • Konbuyu başlatan Konbuyu başlatan mtbi00
  • Başlangıç tarihi Başlangıç tarihi
Katılım
28 Kasım 2008
Mesajlar
191
Excel Vers. ve Dili
excel 2003
excel 2010
Merhaba,

Açtığım excel dosyasında "DENEME" isimli bir sayfa varsa silmek istiyorum. Daha önce yapabiliyordum ama hata alıyorum. Sayfa yoksa sorun olmuyor ama "DENEME" sayfası olduğunda hata veriyor. Makroyu çalıştırdığımda "Run time error '9': Subscript out of range" hatası alıyorum. Makroyu durduğumda ise "DENEME" sayfasını siliyor. Konu hakkında yardımlarınız rica olunur. Makronun içeriği aşağıdaki gibidir.

Teşekkürler.


For i = 1 To Worksheets.Count
If Sheets(i).Name = "DENEME" Then
Application.DisplayAlerts = False
Sheets("DENEME").Delete
End If
Next i
 
Merhaba,

Döngüyü tersten başlatmanız gerekir.

For i = Worksheets.Count To 1 Step -1

.
 
Merhaba.

Alternatif olsun. Bir fonksiyon tanımlayarak tüm dosyalarınızda rahatça kullanabilirsiniz.

Kod:
Sub Test()

    Dim Syf As String
    
    Syf = "DENEME"
    
    Application.DisplayAlerts = False
    If SayfaVarYok(Syf) = True Then Sheets(Syf).Delete
    Application.DisplayAlerts = True
    
End Sub

Kod:
Function SayfaVarYok(SyfAdi As String) As Boolean
    On Error Resume Next
    SayfaVarYok = CBool(Len(Worksheets(SyfAdi).Name) > 0)
    
End Function
 
Başka alternatifler;

Bu kontrol ederek silmek için.
C++:
Option Explicit

Sub Sayfa_Sil()
    Dim Sayfa As Worksheet
    
    On Error Resume Next
    Set Sayfa = Nothing
    Set Sayfa = Sheets("DENEME")
    On Error GoTo 0
    
    Application.DisplayAlerts = False
    If Not Sayfa Is Nothing Then Sayfa.Delete
    Application.DisplayAlerts = True
End Sub


Bu var mı, yok mu bakmadan silmek için. Varsa siler. Yoksa hata vermez.
C++:
Option Explicit

Sub Sayfa_Sil()
    On Error Resume Next
    Application.DisplayAlerts = False
    Sheets("DENEME").Delete
    Application.DisplayAlerts = True
    On Error GoTo 0
End Sub
 
Geri
Üst