Lompat ke konten utama
←

Makro dan VBA Excel

Pelajaran 12 dari 14

Prosedur, galat, dan debugging

Menamai galat dan On Error

Setelah pelajaran ini kamu bisa membedakan galat kompilasi dari galat saat berjalan, menamai galat 6, 9, 11, 13, dan 91, serta menelusuri alur On Error GoTo dan On Error Resume Next.

  • ±13 menit
  • 3 latihan
  • Diperiksa 28 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

VBA punya dua jenis galat. Galat kompilasi muncul sebelum makro berjalan, misalnya Variable not defined di bawah Option Explicit. Galat saat berjalan muncul di tengah eksekusi dan punya nomor serta nama. Lima yang paling sering ditemui di makro Excel:

NomorNamaContoh penyebab
6Overflow300 * 200 disimpan ke Long; hasil melewati batas tipe
9Subscript out of rangeWorksheets("Rekap") padahal tidak ada lembar bernama Rekap
11Division by zeroPembagi bernilai 0, termasuk variabel salah ketik yang kosong
13Type mismatchTeks "dua" disimpan ke variabel Long
91Object variable or With block variable not setVariabel objek diisi tanpa Set

Tanpa On Error, galat saat berjalan menghentikan makro dengan pesan. On Error GoTo Penanganan melompat ke label Penanganan saat galat terjadi; Err.Number dan Err.Description menyimpan nomor dan pesannya. On Error Resume Next membuat VBA melompati pernyataan yang gagal dan lanjut ke baris berikutnya, sehingga galat bisa lolos tanpa disadari bila Err.Number tidak diperiksa. On Error GoTo 0 mematikan penanganan. Bila galat baru terjadi di dalam kode penanganan yang sedang aktif, prosedur yang sama tidak bisa menangkapnya lagi.

Sub BagiTarget()
    On Error GoTo Gagal
    Dim perOrang As Double
    perOrang = Range("B1").Value / Range("B2").Value
    Range("B3").Value = perOrang
    Exit Sub
Gagal:
    MsgBox "Galat " & Err.Number & ": " & Err.Description
End Sub

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Buku kerja hanya punya lembar Data dan Arsip. Apa yang terjadi saat SalinKeArsip dijalankan?

Sub SalinKeArsip()
    Worksheets("Arsip 2026").Range("A1").Value = "Disalin"
End Sub
Pilih satu jawaban

Latihan 2 dari 3

B10 berisi 900000 dan B11 berisi 0. Apa isi B12 setelah RataRata dijalankan?

Sub RataRata()
    On Error Resume Next
    Dim rata As Double
    rata = Range("B10").Value / Range("B11").Value
    Range("B12").Value = rata
End Sub
Pilih satu jawaban

Latihan 3 dari 3

A2 berisi 5000, sehingga tidak ada galat. Apa isi D2 setelah SimpanTarget dijalankan?

Sub SimpanTarget()
    On Error GoTo Penanganan
    Range("C2").Value = Range("A2").Value * 2
    Range("D2").Value = "Selesai"
Penanganan:
    Range("D2").Value = "Gagal: " & Err.Number
End Sub
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke