VBA Yoksayma Hatası

Bu öğretici, kodunuzu çalıştırırken VBA'nın bir Hatayı Yoksaymasını nasıl sağlayacağınızı gösterecektir.

Bazen VBA kodu oluşturduğunuzda, bir hata oluştuğunda VBA'nın bir kod satırını yok saymasını istersiniz. Bu, örneğin, varsa bir sayfayı silmek, ancak sayfa yoksa bu kod satırını yoksaymak istediğinizde oldukça yararlı olabilir.

(VBA Hataları hakkında daha fazla bilgi için Hata İşleme Kılavuzumuza bakın)

Hatada Devam Et Sonraki

Bir prosedürde bir kod satırını yok saymak için şunu kullanırız: Hatada Devam Et Sonraki Beyan.

123456 Alt TestErrorIgnore()Hatada Devam Et SonrakiActiveWorkbook.Sheets("Sayfa4").selectActiveSheet.Delete'burada daha fazla kodAlt Bitiş

Yukarıdaki örnekte, bir Hatada Devam Et Sonraki deyimi prosedürün en üstüne yerleştirilmiştir. Kod daha sonra Sheet4'ü seçip silmek için oluşturulur.

Ancak, nedeniyle Hatada Devam Et Sonraki deyimi, kod Sayfa4'ü bulamazsa, bir sonraki satıra geçer ve bulduğu etkin sayfayı siler.

Silmek istediğiniz yalnızca Sayfa 4 ise ve yalnızca etkin olan Sayfaysa bu oldukça tehlikeli olabilir. Bu hatayı önlemek için sayfa 4'e bir değişken ayarlayabilir ve yalnızca varsa o sayfayı silebiliriz.

1234567 Alt TestErrorIgnore()Dim ws As Çalışma SayfasıHatada Devam Et SonrakiSet ws = ActiveWorkbook.Sheets("Sayfa4")ws.Sil'burada daha fazla kodAlt Bitiş

Şimdi kod çalıştırıldığında, yalnızca Sayfa4 silinecek EĞER Sayfa4 aslında var. Sayfa 4 yoksa, VBA hatayı yok sayar ve devam eder.

Bunun başka bir örneği, çalışma kitabınızdaki tüm sayfaları bir döngü kullanarak silmek istemenizdir. Bir Excel çalışma kitabının en az bir sayfası olması gerektiğinden, kod biri hariç tüm sayfaları siler.

123456 Alt Sil Sayfaları()Dim ws As Çalışma SayfasıActiveWorkbook.Sheets'teki Her ws içinws.SilSonrakiAlt Bitiş

Yukarıdaki kod bir hata ile duracaktır.

tıklama hata ayıklama bizi rahatsız edici satır vurgulanmış olarak koda götürecek!

Ancak, ekleme Hatada Devam Et Sonraki kod satırı hatayı önleyecek ve rutin çalışma kitabında her zaman bir sayfa bırakacaktır.

12345678 Alt Sil Sayfaları()'buraya hata satırı ekleyinHatada Devam Et SonrakiDim ws As Çalışma SayfasıActiveWorkbook.Sheets'deki Her ws içinws.SilSonrakiAlt Bitiş

Hatada GoTo 0

Çoğu zaman kullanırsanız Hatada Devam Et Sonraki bir hatayı yok saymak için, daha sonra kodda hata yakalamayı veya gelecekte bir hata oluşursa kodunuzun çalışmasının durmasını istiyorsunuz. Hata işlemeyi yeniden ayarlayabiliriz, böylece On Error GoTo 0 satırını ekleyerek kod bir kez daha hatalara neden olur.

12345678 Alt TestErrorIgnore()Dim ws As Çalışma SayfasıHatada Devam Et SonrakiSet ws = ActiveWorkbook.Sheets("Sayfa4")ws.SilHatada GoTo 0'burada daha fazla kodAlt Bitiş

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave