Vba kullanarak bir sayfayı nasıl silebilirim?
VBA kullanarak bir sayfayı silmek için VBA Silme yöntemini kullanmanız gerekir. Silmek istediğiniz sayfayı belirtmeniz ve ardından bu yöntemi kullanmanız gerekir. Diyelim ki “Sayfa1″i silmek istiyorsanız, sayfa1’den bahsetmeniz, ardından nokta (.) yazmanız ve sonuna “Sil” yazmanız gerekir.
Bu eğitimde VBA kodunu kullanarak bir sayfayı silmek için kullanabileceğiniz farklı yolları göreceğiz. Şeritte geliştirici sekmesinin bulunduğundan emin olun, buradan görsel temel düzenleyiciye erişebilirsiniz .
Adını kullanarak bir sayfayı silme
Her sayfanın bir adı vardır ve bu adı kullanarak bir sayfayı silmek için yazma kodunu kullanabilirsiniz. Diyelim ki “Veri” çalışma sayfasını silmek istiyorsunuz, kod şöyle olacaktır:
Sub vba_delete_sheet() Sheets("Data").Delete End Sub
Bir sayfayı uyarı vermeden silin (istem)
Bir çalışma sayfasını sildiğinizde Excel, onu silmek mi yoksa iptal etmek mi istediğinizi onaylayan bir mesaj görüntüler. Ve VBA kodunu kullandığınızda bu durumda Excel de bunu yapacaktır.
Bu sorunu çözmek için, bir sayfayı silmek üzere ekran güncellemeyi devre dışı bırakabilir ve ardından etkinleştirebilirsiniz.
Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
Bir hücrenin sayfasının adı
Şimdi çalışma sayfası adını kullanmak için bir hücre değeri kullanmak istediğinizi varsayalım. Bu durumda bunu yapmak için VBA range nesnesini kullanmanız gerekir.
Sayfa numarasını kullanarak sayfayı sil
Bu doğru. Silmek için sayfa numarasını kullanabilirsiniz. İşte kod.
Sub vba_delete_sheet() Sheets(1).Delete End Sub
Etkin sayfayı sil
Etkin sayfayı silmek için sayfayı belirtmek amacıyla sayfa adını kullanmak yerine “ActiveSheet” nesnesini kullanabilirsiniz.
ActiveSheet.Delete
Dediğim gibi bu işlem aktif sayfayı siler ve silmeden önce aktif hale getirebilirsiniz. Ancak açıkçası bunu yapmanıza gerek yok çünkü bu eğitimin başında gördüğümüz gibi bir sayfaya başvurabilir ve onu silebilirsiniz.
Silmeden önce sayfanın mevcut olup olmadığını kontrol edin
Kodu, sayfanın var olup olmadığını kontrol edebilecek ve ardından silebilecek şekilde de yazabilirsiniz.
Sub check_sheet_delete() Dim ws As Worksheet Dim mySheet As Variant mySheet = InputBox("enter sheet name") Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
Bu kodda, tüm çalışma sayfalarını yinelemek için FOR HER’ye sahipsiniz. Ve ardından, adı giriş kutusuna yazdığınız isme eşitse sayfayı silmek için bir IF BEYANI .
Çalışma kitabındaki tüm çalışma sayfalarını sil
Eminim aklınızda bu soru vardır ama korkarım çalışma kitabındaki tüm çalışma sayfalarını silmek imkansızdır. En az bir çalışma sayfanız kaldı.
Ama bu soruna bir çözüm buldum. Yeni bir boş sayfa ekleyebilir, ardından orada bulunan tüm sayfaları silebilirsiniz.
İşte kod: Bu kod yeni bir sayfa ekler ve diğer tüm sayfaları siler.
Sub vba_delete_all_worksheets() Dim ws As Worksheet Dim mySheet As String mySheet = "BlankSheet-" & Format(Now, "SS") Sheets.Add.Name = mySheet Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If ws.Name <> mySheet Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub