Hata Durumunda VBA Goto 0 - Excel VBA'da Hata GoTo 0 Nasıl Kullanılır?

Hata Durumunda Excel VBA Goto 0

VBA On Error GoTo 0 , prosedürde etkinleştirilmiş hata işleyiciyi devre dışı bırakmak için kullanılan bir hata işleyici ifadesidir. "Hata İşleyici Engelleyici" olarak anılır.

Herhangi bir programlama dilinde hata işleme, tüm kodlayıcıların anlaması gereken bir ana sınıftır. VBA programlama dili de ve bu programlama dilinde de hata işleme tekniklerimiz var. "On Error Resume Next" hata işleyiciyi etkinleştirir ve "On Error GoTo 0" etkinleştirilmiş hata işleyiciyi devre dışı bırakır.

Hem "Hata Durumunda Sonraki Devam Et" hem de "Hata Durumunda GoTo 0", kodun verimliliği için birlikte kullanılması gereken çiftlerdir. Hatayı gidermek için, "On Error Resume Next" ile başlamamız ve bu hata işleyiciyi bitirmemiz gerekir. “Hata Olduğunda 0'a Git” ifadesini kullanmamız gerekiyor.

Bu ifadeler arasında yazılan herhangi bir satır kodu, işlemlerde meydana gelen her türlü hatayı göz ardı edecektir.

On Error GoTo 0 İfadesi nasıl kullanılır?

Örneğin, aşağıdaki koda bakın.

Kod:

Alt On_ErrorExample1 () Çalışma Sayfaları ("Sayfa1"). Aralık seçin ("A1"). Değer = 100 Çalışma Sayfası ("Sayfa2"). Aralık seçin ("A1"). Değer = 100 Son Alt

Yukarıdaki kodun yaptığı şey, önce "Sayfa1" adlı çalışma sayfasını seçecek ve A1 hücresine 100 değerini ekleyecektir.

Kod:

Çalışma sayfaları ("Sayfa1"). Aralık seçin ("A1"). Değer = 100

Daha sonra “Sayfa2” adlı çalışma sayfasını seçecek ve aynı değeri ekleyecektir.

Kod:

Çalışma sayfaları ("Sayfa2"). Aralık seçin ("A1"). Değer = 100

Şimdi çalışma kitabımda aşağıdaki sayfalar var.

"Sayfa1" ve "Sayfa2" adında bir sayfa yok. Kodu çalıştırdığımızda aşağıdaki gibi bir hata ile karşılaşacaktır.

"Sayfa1" olarak adlandırılan bir sayfa olmadığından, "Alt simge aralık dışı" hatasıyla karşılaştı. Bu hatayı gidermek için, makronun tepesine bir hata işleyici deyimi "On Error Resume Next" ekleyeceğim.

Kod:

Alt On_ErrorExample1 () Hata Olduğunda Sonraki Çalışma Sayfalarını Devam Ettir ("Sayfa1"). Aralığı Seç ("A1"). Değer = 100 Çalışma Sayfası ("Sayfa2"). Aralık Seç ("A1"). Değer = 100 Son Alt

Şimdi kodu çalıştırın ve ne olacağını görün.

Herhangi bir hata mesajı vermez çünkü hata işleyici deyimi On Error Resume Next etkinleştirilir.

"Sayfa1" çalışma sayfasının mevcut olmaması durumunda hatayı göz ardı etmemiz gereken senaryoyu hayal edin, ancak "Sayfa2" adlı çalışma sayfası yoksa bunu bildirmemiz gerekir.

En üstte On Error Resume Next eklediğimiz için hatayı işlemeye başladı, ancak aynı zamanda bu hatayı yok saymamız gereken kaç satır olduğunu da belirtmemiz gerekiyor.

Bu örnekte, ilk çalışma sayfası için, ancak ikinci sayfadan itibaren hatayı göz ardı etmemiz gerekiyor. "Sayfa2" çalışma sayfası yoksa oluşacak hataya ihtiyacımız var. Bu nedenle, ilk çalışma sayfası kodundan sonra hatayı devre dışı bırakma satırını Hatalı Git 0'a ekleyin.

Kod:

Alt On_ErrorExample1 () Hatada Sonraki Çalışma Sayfalarını Devam Ettir ("Sayfa1"). Aralık Seçin ("A1"). Değer = 100 Hatada GoTo Çalışma Sayfaları ("Sayfa2"). Aralık Seç ("A1"). Değer = 100 Son Alt

Şimdi F8 tuşuna basarak etkiyi görmek için kodu satır satır çalıştırın.

Şimdi, kod yürütme sonraki satıra atladığında F8 tuşuna basarsanız ve aktif hat görevi yürütülecektir. Şimdi aktif hat (sarı renkli çizgi) "Hata Devam Ediyor" hata işleyicisidir ve hata işleyici etkinleştirilecektir.

Şimdi herhangi bir hata meydana gelir. Hata işleyicisi " On Error GoTo 0 " kodunu devre dışı bırakana kadar yok sayılacaktır .

Önceki denememizde hatalarla karşılaştık ama F8 tuşuna bir kez daha basıp sihri gördük.

Herhangi bir hata vermeden, seçilecek “Sayfa2” çalışma sayfası olmamasına rağmen kodun yürütülmesine devam etti. Şimdi tekrar F8'e basın.

Sayfa1 olmadığı için, A1 hücresindeki değeri 500 olarak ekleyemez, ancak yaptığı şey, 500 değerini A1 hücresine hangi çalışma sayfası etkinse ekleyecektir. Kodu yürütürken aktif sayfam "Sayfa3" idi, bu nedenle A1 hücresine 100 değeri eklenir.

Şimdi aktif kod satırı , F8 tuşuna basarak " Hata Durumunda 0'a Git " olur. Bu hat görevi yürütülecektir.

"On Error GoTo 0" yürütüldüğünden, hata işleme sürecini durdurmuş ve herhangi bir hata oluşursa tekrar göstermeye başlar. F8 tuşuna basın ve hatayı görün.

On Error GoTo 0 olmadan önceki durumda, bu hatayı da göz ardı etti, ancak bir hata işleyici devre dışı bırakıcı eklediğimiz için hatayı tekrar göstermeye başladı.

Burada Hatırlanması Gereken Şeyler

  • Hem Hata Durumunda Devam Etme Sonraki hem de Hata Durumunda GoTo 0'ın " Hata İşleyici Etkinleştirici " ve " Hata İşleyici Devre Dışı Bırakıcı " olarak kullanılması gerekir .
  • Bu iki ifade arasındaki herhangi bir kod satırı bir hatayla karşılaşırsa, göz ardı edilecektir.
  • On Error GoTo 0 ifadesi varsa, alt prosedürden çıktıktan sonra hata işleyicisi devre dışı bırakılacaktır.

Ilginç makaleler...