Hata Ayıklama Kodları

Hata ayıklamada kullanılan başlıca kodlar aşağıdaki gibidir.

1. Bu yöntemde, bir hata oluştuğu anda kodun sonuna atlamak için bir etiket kullanılır.

Sub makro1()

On Error GoTo HATA

    [kod satırları]

HATA:

End SubCode language: VB.NET (vbnet)

2. Bu yöntemde belirlenen hatalar atlanılır ve ardından kalan talimatlar için normal hata ayıklama işlemine devam edilir. Genelde probleme çözüm olunmaz, sadece çok spesifik amaçlarda kullanılır.

Sub makro2()

On Error Resume Next
    [kod satırları]
    
On Error GoTo 0
    [kod satırları]
    
End SubCode language: VB.NET (vbnet)

3. Bu yöntemde hata ayıklama işlemi hata koduna göre daha ayrıntılı yapılır. Eğer hata yoksa makrodan çıkmak için “Exit Sub” ifadesi eklenir.

Sub makro3()

    On Error GoTo HATA
    
    [kod satırları]

Exit Sub

HATA:

    Select Case Err.Number
        Case 424 'hata kodu
            Exit Sub
        Case Else
            MsgBox "Bir hata oluştu. Lütfen seçiminizi tekrar kontrol edin"
    End Select
    
End SubCode language: VB.NET (vbnet)

Örnek 1:

Sub Formul_Say()
    'Çalışma kitabında toplam kaç adet formül olduğunu bulacağız
    Dim Sh As Worksheet
    Dim sayac1 As Double
    Dim sayac2 As Double
    
    For Each Sh In ThisWorkbook.Worksheets
        On Error GoTo HATA
        sayac1 = Sh.Cells.SpecialCells(xlCellTypeFormulas).Count
HATADEVAM:        sayac2 = sayac2 + sayac1
HATA:
    If Err.Number = 1004 Then
        sayac1 = 0
        Resume HATADEVAM
    End If
    Next Sh
    MsgBox "Bu çalışma kitabında " & sayac2 & " adet formül var!"
    
End SubCode language: VB.NET (vbnet)

Örnek 2:

Sub Yorum_Say()
    'Çalışma kitabında toplam kaç adet yorum olduğunu bulacağız
    Dim Sh As Worksheet
    Dim sayac1 As Double
    Dim sayac2 As Double
    
    For Each Sh In ThisWorkbook.Worksheets
        On Error GoTo HATA
        sayac1 = Sh.Cells.SpecialCells(xlCellTypeComments).Count
HATADEVAM:        sayac2 = sayac2 + sayac1
HATA:
    If Err.Number = 1004 Then
        sayac1 = 0
        Resume HATADEVAM
    End If
    Next Sh
    MsgBox "Bu çalışma kitabında " & sayac2 & " adet yorum var!"
    
End SubCode language: VB.NET (vbnet)

Watch ekranından değişkenler takip edilebilir:

Hata Ayıklama Kodları

Yayımlandı

kategorisi

yazarı:

Etiketler: