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
kod yazma-silme

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.

Silme veya iptal işlemini onaylamak için iletişim kutusu

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
iletişim uyarısını devre dışı bırak

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.

çalışma sayfasının adını kullanmak için bir hücre değeri kullanın

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
silmek için sayfa numarasını kullan

Etkin sayfayı sil

Etkin sayfayı silmek için sayfayı belirtmek amacıyla sayfa adını kullanmak yerine “ActiveSheet” nesnesini kullanabilirsiniz.

 ActiveSheet.Delete
-silmek-etkin-sayfa-kullanım-etkin-sayfa

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
sayfanın mevcut olup olmadığını kontrol etmek için kod yazma

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

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir