VBA Hata İşleme - Excel VBA'da Hata İşleme Kılavuzu

Excel VBA Hata İşleme

VBA'da kodlarla çalışırken birçok farklı türde hata ile karşılaşabiliriz ve bu hataların nasıl giderileceği Hata işleme olarak bilinir, şimdi sözdiziminde yapılan bazı hatalar olabilir, kendini öne çıkaran ancak bazı hatalar olduğunda aralık dışında olan veya olmayan bir şey excel bize aynı şeyi gösterir, koddaki hatayı tanımlamak için hangi hata kodunun hangi hata için olduğunu bilmek önemlidir.

Excel VBA'da herhangi bir kod setini çalıştırırken bir takım hatalar alıyoruz. Bu hatalardan bazıları sözdizimi hatalarıdır; bazıları yürütülemeyen hatalardır. Sözdizimi hatası, kullanıcı tarafından yapıldığında kırmızı renkle excel'in kendisi tarafından vurgulanır. Ancak başka tür bir çalışma zamanı hatası olduğunda, bununla nasıl başa çıkacağız ve bunun ötesine nasıl geçeceğiz bu makalede ele alacağız.

Sözdizimi hatalarının yanı sıra, herhangi bir kod seti yürütülürken diğer çalışma zamanı hatalarının da ele alınması gerekir. İlk olarak, diğer çalışma zamanı hatasının nasıl oluştuğuna dair bir örnek vereyim. Aşağıdaki koda bir göz atın,

Bu örnek bir kod çalıştırıldığında, msgbox işlevinde yazılanı döndürür. Fakat kodun ikinci satırında gördüğümüz gibi matematiksel olarak mümkün olmayan 4/0 var, bu yüzden bir çalışma zamanı hatası döndürecektir. Yukarıdaki kodu çalıştıralım ve alacağımız hatayı görelim.

Bu, verilen kodu çalıştırırken aldığımız hatadır. Şimdi bu hatayı nasıl ele alacağız Hata İşleme ile yapılır.

Hataları işlemek için iki yöntem vardır:

  1. Hata Goto ve
  2. Hatada Devam Et Sonraki.

Açıklama

Yukarıda açıklandığı gibi, VBA'da birçok türde hata alıyoruz. Bazıları sözdizimidir ve bazıları çalışma süresidir. Sözdizimi hataları zaten Kırmızı renkte vurgulanmıştır, örneğin aşağıdaki ekran görüntüsüne bakın,

Diğeri ise çalışma zamanı hatalarıdır. Temel olarak, excel aşağıdaki üç şeyi yapacak, ya bir hata gösterecek ya da bu hatayı görmezden gelecektir ya da belirli bir dizi talimat gösterecektir. Bu tür görevleri gerçekleştirmek için talimat vermemiz gerekir ve buna Hata İşleme denir.

VBA Kodundaki Hatalar Nasıl İşlenir?

Örnek 1

İlk örnek için, gösteri olarak aldığımız ilk kodu alalım. Yukarıdaki örnekte, kodun ikinci msgbox fonksiyonunda çalışma zamanı hatası verdiğini gördük.

Alt işlevi açtıktan sonra aşağıdaki kodu yazın,

Kod:

Alt Örnek () Hatada Devam Et Sonraki MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Şimdi yukarıdaki kodu çalıştırdığımızda, hata içeren kod satırının çalışmadığını görüyoruz. Excel bu satırı atlar ve sonraki satırdan devam eder.

Hatayı halletmenin başka bir yöntemi de VBA Goto Beyanı'dır. Bir hata bulduğunda gidilecek bir hedef olarak excel'i sağlıyoruz. Önceki hata işleme kodu yerine aşağıdaki kodu ekledik, yazdık,

Kod:

Alt Örnek () Hata Durumunda GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Hata bulması durumunda gidilecek yer olarak excel Az veriyoruz. Şimdi msgbox'tan sonra aşağıdaki gibi başka bir kod yazın,

Kod:

Alt Örnek () Hata Durumunda GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Bitti: Sub Exit

Şimdi, az hedefini, excel kodda bir hata bulduğunda ne yapması gerektiğini tanımlamamız gerekiyor.

Kod:

Alt Örnek () Hata Durumunda GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Bitti: Exit Sub az: MsgBox "Bu bir hata" & Err.Description End Sub

Şimdi bu kodu çalıştırdığımızda sonucun görüntülendiğini görüyoruz.

Bu ilk mesaj kutusu sonucudur ve kodumuzun bir sonraki satırında bir hata olduğunu bildiğimiz için excel'in vereceği sonucu görelim.

Yukarıdaki kodda bulunan err.description, kodumuzda hatanın tam olarak ne olduğunu göstermemize yardımcı olur.

Örnek 2

Kodlarımızdaki hataları nasıl ele alacağımızı öğrendik. Hataların nasıl ele alınacağına dair başka bir örneğe bakalım. Aşağıdaki kodu ikinci örneğimiz olarak düşünün.

Örnek 1'den biraz benzer bir hatamız var. Hata d = i / b satırındadır. Şimdi bu hataları yukarıda açıklanan iki yöntemi kullanarak halledeceğiz.

Alt işlevi açtıktan sonra aşağıdaki kodu yazın,

Kod:

Alt Örnek2 () Hatada Devam Et Sonraki bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub

Now when we execute our code, we can see that it ignores the second line and just displays the value for C.

The above error handler was a resume next, and now we will use the Go to wherein we will tell we excel a destination to go when it encounters an error. Write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d

The bx is a destination given when it encounters an error after msgbox D write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

Alt Örnek2 () Hata Durumunda GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox "Bu başka bir Hata" & Err.Açıklama End Sub

Şimdi kodu çalıştırdığımızda, excel'in önce bize C değerini verdiğini görebiliriz.

Şimdi başka bir adımda, bize bir hatayla karşılaştığında sağladığımız soruyu verecek.

Excel VBA'daki normal çalışma zamanı hatalarını bu şekilde ele alıyoruz.

Hatırlanacak şeyler

Hata İşleme hakkında hatırlamamız gereken birkaç şey var:

  1. Devam Etme Hatasında, Hatayı Yok Sayar.
  2. Hatada GoTo Bir hatayla karşılaştığında excel hedefi verir.
  3. Açıklama, kullanıcının başına gelen hatayı tam olarak göstermek için kullanılır.

Ilginç makaleler...