VBA Sayfayı Sil - VBA Kodunu Kullanarak Çalışma Sayfası Nasıl Silinir?

İçindekiler

Excel VBA Sayfayı Sil

Sayfayı VBA'da Silmek için Çalışma Sayfasını Sil yöntemimiz var. Bu yöntemi uygulamak için önce sayfa adını çağırarak hangi sayfayı sildiğimizi belirlememiz gerekir. Aynısını yapmak için iki yöntemimiz var önce doğrudan sheet1.delete yazıyoruz ve ikinci yöntem sheet (sayfa1) .delete.

Dolayısıyla sözdizimi aşağıdaki gibidir.

Çalışma Sayfaları ("Çalışma Sayfası Adı"). Sil

VEYA

Sayfalar ("Sayfa Adı"). Sil

Bu yüzden, önce biz birini kullanarak sayfa adını belirtmeniz gerekir Çalışma Sayfası veya Sheets sonra sonra, Nesne, kullanabileceğimiz “Sil” yöntemi.

VBA Kodunu Kullanarak Excel Sayfaları Nasıl Silinir?

Örnek 1 - Adını kullanarak Çalışma Sayfasını Silin

Birçok sayfanız olduğunu varsayalım ve belirli çalışma sayfasını silmek için, çalışma sayfasını adıyla belirtmemiz gerekir. Örneğin, "Satış 2016", "Satış 2017" ve "Satış 2018" adlı 3 farklı sayfam var.

" Satış 2017 " adlı sayfayı silmek istersem , aşağıdaki gibi pafta adını belirtmem gerekir.

Kod:

Alt Delete_Example1 () Çalışma Sayfaları ("sayfalar 2017"). Sub

Çalışma sayfası adını doğrudan belirtmekle ilgili sorun, VBA'nın IntelliSense listesini göremiyoruz. Her durumda yöntemi " Sil " olarak belirtin.

Kod:

Sub Delete_Example1 () Çalışma Sayfaları ("sayfalar 2017"). End Sub'ı Sil

Bu, " Satış 2017 " adlı sayfayı silecektir .

Çalışma Sayfasını Silerken Hata: Var olmayan çalışma sayfasını silmeye çalışırsak veya çalışma sayfası adını yanlış belirtirsek , "Abonelik Aralık Dışında" olarak VBA hatasını alacağız .

Yukarıda, "Abonelik Aralık Dışında" hatası aldım çünkü çalışma kitabımda "Satış 2017" adlı bir sayfa adı yok.

Örnek 2 - Çalışma Sayfasını Değişkenlerle Adına Göre Silin

Yukarıdaki örnekte gördüğümüz gibi, Çalışma Sayfaları nesnesini kullanarak çalışma sayfası adına başvurduğumuz anda IntelliSense listesini göremiyoruz. IntelliSense listesini görmek için değişkenler kullanmamız gerekiyor.

Adım 1: İlk olarak, değişkeni Çalışma Sayfası olarak bildirin .

Kod:

Alt Sil_Örnek2 () Çalışma Sayfası Sonu Alt Olarak Dim W

Adım 2: Çalışma sayfası bir nesne değişkeni olduğundan, değişkeni " SET " kelimesini kullanarak belirli çalışma sayfasına ayarlamamız gerekir .

Kod:

Sub Delete_Example2 () Dim Ws as Worksheet Set Ws = Worksheets ("Sales 2017") End Sub

Şimdi "Ws" değişkeni, "Satış 2017" adlı çalışma sayfasını ifade ediyor.

Adım 3: Şimdi, " Ws " değişkenini kullanarak , çalışma sayfasının tüm IntelliSense listesine erişebiliriz.

Kod:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws. Sub

Adım 4: IntelliSense listesinden " Sil " yöntemini seçin.

Kod:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws.Delete End Sub

Değişkenleri kullanarak bunun gibi, IntelliSense listesine erişebiliriz.

Örnek 3 - Etkin Çalışma Sayfasını Silin

Etkin Sayfa, şu anda etkin olan veya seçilen çalışma sayfasından başka bir şey değildir. Bu yöntem için, çalışma sayfası adını belirtmemize gerek yoktur. Örneğin, aşağıdaki VBA koduna bakın.

ActiveSheet.Delete

Şu anda aktif sayfa "Satışlar 2017" dir.

Kodu çalıştırırsam, aktif sayfa, yani "Satış 2017" siler.

Şimdi “2016 Satışları” nı seçeceğim.

Şimdi aktif sayfayı, yani “2016 Satışları” siler.

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub

Yukarıdaki kod, çalışma kitabındaki tüm sayfaları silmeye çalıştığı için bir hata verecektir. Bundan kaçınmak için en az bir çalışma sayfası tutmamız gerekiyor.

Aktif sayfa dışındaki tüm çalışma sayfalarını silmek istiyorsak aşağıdaki kodu kullanmamız gerekir.

Kod:

Sub Delete_Example2 () ActiveWorkbook.Worksheets'teki Her Çalışma Sayfası İçin Çalışma Sayfası Olarak Dim Ws ActiveSheet.Name ise Ws.Name Sonra Ws.Delete If Next Ws End Sub

Benzer şekilde, belirli bir çalışma sayfasını değil, diğer tüm çalışma sayfalarını silmek istiyorsak, aşağıdaki kodu kullanabiliriz.

Kod:

Sub Delete_Example2 () ActiveWorkbook.Worksheets'teki Her Çalışma Sayfası İçin Çalışma Sayfası Olarak Dim Ws.Name Eğer Ws.Name "Sales 2018" Sonra 'Çalışma sayfası adını değiştirebilirsiniz Ws.Delete End If Next Ws End Sub

Yukarıdaki kod, "Satış 2018" adlı çalışma sayfası dışındaki tüm çalışma sayfalarını silecektir.

Ilginç makaleler...