GoTo Hatasında VBA - VBA'da Hata Durumunda İfade Türleri

GoTo Hatasında Excel VBA

Hatalar, herhangi bir kodlama dilinin bir parçasıdır ve VBA makroları bundan farklı değildir. Kanımca, hatanın neden oluştuğunu bulmak, yapılan işin% 90'ı ve% 10'u bu hatayı nasıl düzelteceğidir. Her kodlama dilinde, kodlayıcılar kendi kodlamalarında hataları ele almak için kendi yöntemlerini kullanırlar, biz de VBA kodlamada kullanıyoruz. Çoğu zaman, hatayı görmezden gelmemiz gerekir veya çoğu zaman hata oluştuğunda belirli şeylere gitmek isteyebiliriz. "Hata Durumunda", hataları işlemek için VBA'da kullanmamız gereken ifadedir.

Bu ifadenin üç tür ifadesi vardır ve aşağıda liste bulunmaktadır.

  1. Hata Olduğunda 0'a Git
  2. Hata Goto'da (etiket)
  3. Hatada Devam Et Sonraki

Bu makalede, bu üç ifadenin her türlü hatayı ele almak için VBA kodlamasında nasıl kullanıldığını göreceğiz.

Hata İfadelerinde VBA nasıl kullanılır?

# 1 - Hata Devam Etme Sırasında

İfadenin kendisinin de belirttiği gibi, "Hata Olduğunda Sonraki Devam Et", hata satırı kodunu yok sayarak kodun sonraki satırındaki "devam et" kodunda hata oluştuğunda anlamına gelir. Şimdi aşağıdaki koda bir göz atın.

Aşağıdaki kodda çalışma sayfası adlarından bahsettim ve ilk hücreye "Hata Testi" olarak değer girilmesini istedim.

Kod:

Alt On_Error_Resume_Next () Çalışma Sayfaları ("Ws 1"). Aralık Seçin ("A1") Değer = "Hata Testi" Çalışma Sayfaları ("Ws 2"). Aralık Seçin ("A1"). Değer = "Hata Testi" Çalışma Sayfaları ( "Ws 3"). Aralık seçin ("A1"). Değer = "Hata Testi" Çalışma Sayfaları ("Ws 4"). Aralık seçin ("A1"). Değer = "Hata Testi" Son Alt

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

  • Kodu çalıştıracağım ve ne olacağını göreceğim.
  • "Subscript Out of Range" hatası aldık, hangi satırda hata aldığımızı görmek için "Debug" a tıklayın.
  • Dolayısıyla "Çalışma Sayfaları (" Ws 3 "). Seçin" satırında bir hata aldık. Bunun nedeni, çalışma kitabımızda "Ws 3" adlı bir çalışma sayfası olmaması, dolayısıyla bir hatayla karşılaşılmasıdır.

Bu gibi durumlarda, hatayı görmezden gelmek ve kodun yürütülmesine sonraki satıra devam etmek isteyebiliriz. Burada "Hata Olduğunda Devam Et" hata işleyicimiz resmin içine girer.

  • Tek yapmamız gereken, makronun başına "Hata Olduğunda Devam Et" satırını eklemektir.

Şimdi bu kodu çalıştırın ve herhangi bir hata mesajı göstermeyecektir çünkü kod bir hatayla karşılaştığında, hatayı yok sayacak ve sonraki kod satırına devam edecektir.

# 2 - GoTo 0 Hatasında

Bu bir hata işleyici değil, "Hata Olduğunda Sonraki Devam Et" ifadesini kullanarak hata mesajını devre dışı bıraktıktan sonra bir hata mesajı etkinleştiricisidir.

"Devam Et" ifadesini kullandığınızda, VBA makroları meydana gelen her türlü hatayı yok saymaya başlar ve bir sonraki kod satırıyla devam eder. Ancak bunun her zaman olmasını istemiyoruz çünkü bazı hataları kasıtlı olarak görmezden gelmemiz gerekir, diğerlerinde bir bildirime ihtiyacımız var.

Herhangi bir belirli kod kümesi bu kod bloğunda bir hata atarsa, yalnızca kodun diğer bölümlerindeki hataları göz ardı etmemiz gerekir. Hatayı görmezden gelmek istemiyoruz.

  • "Hata Durumunda GoTo 0" ifadesinin kullanımı için aşağıdaki resme bakın.

Bu nedenle, bu kod satırı, makroları normale döndürdüğünde ve her zamanki gibi hata mesajları vermeye başladığında, kod hatayı bulana kadar hatalar yok sayılacak.

# 3 - GoTo Etiketinde Hata Oluştu

Hatayı nasıl göz ardı edeceğimizi ve hatayı nasıl geri bildireceğimizi gördük. Şimdi bu yöntemi kullanarak, belirli bir kod satırına gidebiliriz.

Bu yöntemde "Etiket", bu etikete herhangi bir isim verebileceğimiz anlamına gelir ve aynı etiket gerekli kod satırında da verilmelidir.

Örneğin, yukarıdaki örnekten aynı koda bakın.

Şimdi F8 fonksiyon tuşuna basarak kodu satır satır çalıştıralım.

Şimdi makro, hata işleyici ifadesini okuyacaktır; F8 tuşuna basın ilk 2 çalışma sayfası kodunu yürütün.

Şimdi makro, çalışma kitabında bulunmayan üçüncü çalışma sayfası kodunu yürütmek üzere, F8 tuşuna basın ve ne olacağını görün.

Makro, aşağıdaki kod satırında bir hatayla karşılaştığı için , " Hata Durumunda (Etiket)" ifadesiyle açıklanan hata işleyici etiketi " Hata Mesajı" na atladı .

Şimdi mesaj kutusu, "Hata Oluştu ve Makrodan Çıkarken" mesajı gösterecektir.

Hatırlanacak şeyler

  • Vba On Error GoTo 0 hata bildirimini bir kez daha etkinleştirecektir, bu nedenle bir hata işleyici sağladıktan sonra bunu eklemeyi unutmayın.
  • Hatayı göz ardı etmek istediğiniz kodun hangi bölümünde kesinlikle emin olmanız gerekir, bu nedenle hata işleyiciyi yalnızca bu kod bloğu için ekleyin.

Ilginç makaleler...