Vba: hata durumunda sub'dan nasıl çıkılır


Bir hatayla karşılaşıldığında alt prosedürden çıkmak için VBA’da Exit Sub deyimini kullanabilirsiniz.

Bu ifadeyi pratikte kullanmanın yaygın bir yolu şudur:

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

Bu özel makro, A1:A10 aralığındaki her değeri B1:B10 aralığında karşılık gelen değere bölmeye çalışır.

Bir hata oluşursa (örneğin, sıfıra bölmeye çalışıyoruz), On Error GoTo ifadesi VBA’ya ErrorMessage’a erişmesini söyler; bu da kullanıcıya bir hata oluştuğunu bildiren bir mesaj kutusu oluşturmasını ve Exist Sub’ı kullanarak alt prosedürü sonlandırmasını söyler. . beyan. beyan.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: VBA’da hata durumunda bir alt nasıl bulunur?

A ve B sütunlarında aşağıdaki değerler listesine sahip olduğumuzu varsayalım:

Şimdi A sütunundaki her değeri B sütunundaki karşılık gelen değere bölmek ve sonuçları C sütununda görüntülemek için aşağıdaki makroyu oluşturduğumuzu varsayalım:

 Sub DivideValues()

Dim i As Integer

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
End Sub

Bu makroyu çalıştırdığımızda aşağıdaki hatayı alıyoruz:

Bu hatayı Excel sayfasının dördüncü satırında sıfıra bölmeye çalıştığımız için alıyoruz.

Bu hata oluştuğunda basitçe alt prosedürden çıkmak istiyorsak Exit Sub deyimini aşağıdaki gibi kullanabiliriz:

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

Bu makroyu çalıştırdığımızda, alt prosedür bir hatayla karşılaşmadan önce olası tüm bölme sorunlarını yapar, ardından bize bir hata oluştuğunu ve alt prosedürde VBA’nın mevcut olduğunu bildiren bir mesaj kutusu görüntülenir:

Çıkış hatası altında VBA

Not : VBA’daki Exit ifadesinin tam belgelerini burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

VBA Kullanarak Klasörler Nasıl Oluşturulur
VBA kullanarak klasörler nasıl silinir
VBA kullanarak dosyalar nasıl silinir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir