VBA Hata Durumunda 0 Goto | 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 0 Git", kodun verimliliği için birlikte kullanılması gereken çiftlerdir. Hatayı işlemek için "On Error Resume Next" ile başlamalıyız ve bu hata işleyiciyi bitirmek için "On Error GoTo 0" ifadesini kullanmalıyız.

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?

Bu VBA'yı Hata Olduğunda 0 Excel Şablonunu buradan indirebilirsiniz - Hata Olduğunda VBA Goto 0 Excel Şablonu

Bir örnek iç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

Ardından "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ım var.

"Sayfa1" ve "Sayfa2" adında bir sayfa yok, kodu çalıştırdığımızda aşağıdaki gibi bir hatayla karşılaşacak.

"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ık Seçin ("A1"). Değer = 100 Çalışma Sayfası ("Sayfa2"). Aralık seçin ("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 ancak "Sayfa2" adında bir çalışma sayfası yoksa bunu bildirmemiz gereken senaryoyu hayal edin.

En üste On Error Resume Next eklediğimiz için hatayı işlemeye başladı ancak aynı zamanda bu hatayı göz ardı etmemiz gereken kaç satır için belirtmemiz gerekiyor.

Bu örnekte, yalnızca ilk çalışma sayfasındaki hatayı göz ardı etmemiz gerekiyor, ancak ikinci sayfadan itibaren "Sayfa2" çalışma sayfası yoksa, hatanın oluşması gerekiyor. 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, F8 tuşuna bir kez basarsanız, kod yürütme sonraki satıra atlayacak ve aktif satır görevi yürütülecektir. Şimdi aktif hat (sarı renkli çizgi) "Hata Devam Ediyor" hata işleyicisidir ve hata işleyici etkinleştirilecektir.

Artık herhangi bir hata meydana gelirse, hata işleyicisi " On Error GoTo 0 " ifadesini 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ı " Hatada 0'a Git ", F8 tuşuna basıldığında bu satır görevi yürütülecektir.

Since “On Error GoTo 0” is executed it has stopped the process of error handling and again starts to show errors if any occurs. Press the F8 key and see the error.

In the previous case without On Error GoTo 0, it has ignored this error as well, but since we have added error handler disabler it has started to show the error again.

Things to Remember here

  • Both On Error Resume Next and On Error GoTo 0 needs to be used as “Error Handler Enabler” and “Error Handler Disabler”.
  • Any line of codes between these two statements encounters an error it will be ignored.
  • If there is On Error GoTo 0 statement then after the exit of the subprocedure error handler will be disabled.