VBA Pada Kesalahan Goto 0 - Bagaimana Cara Menggunakan On Error GoTo 0 di Excel VBA?

Excel VBA Pada Kesalahan Goto 0

VBA On Error GoTo 0 adalah pernyataan penanganan kesalahan yang digunakan untuk menonaktifkan penangan kesalahan yang diaktifkan dalam prosedur. Ini disebut sebagai "Error Handler Disabler".

Penanganan kesalahan dalam salah satu bahasa pemrograman adalah kelas master yang perlu dipahami oleh semua pembuat kode. Bahasa pemrograman VBA juga, dan kami juga memiliki teknik penanganan kesalahan dalam bahasa pemrograman ini. “On Error Resume Next” mengaktifkan penangan kesalahan, dan “On Error GoTo 0” akan menonaktifkan penangan kesalahan yang diaktifkan.

Baik "On Error Resume Next" & "On Error GoTo 0" adalah pasangan yang perlu digunakan bersama-sama untuk efisiensi kode. Untuk menangani kesalahan tersebut, kita perlu memulai dengan pernyataan "On Error Resume Next" dan mengakhiri penanganan kesalahan ini. Kita perlu menggunakan pernyataan "On Error GoTo 0".

Kode baris apa pun yang ditulis di antara pernyataan ini akan mengabaikan segala jenis kesalahan yang terjadi dalam proses.

Bagaimana cara menggunakan Pernyataan On Error GoTo 0?

Misalnya, lihat kode di bawah ini.

Kode:

Sub On_ErrorExample1 () Lembar Kerja ("Sheet1"). Pilih Rentang ("A1"). Nilai = 100 Lembar Kerja ("Lembar2"). Pilih Rentang ("A1"). Nilai = 100 End Sub

Apa yang dilakukan kode di atas adalah pertama-tama akan memilih lembar kerja bernama "Sheet1," dan di sel A1 akan memasukkan nilai 100.

Kode:

Lembar Kerja ("Sheet1"). Pilih Range ("A1"). Nilai = 100

Kemudian itu akan memilih lembar kerja bernama "Sheet2" dan memasukkan nilai yang sama.

Kode:

Lembar Kerja ("Sheet2"). Pilih Range ("A1"). Nilai = 100

Sekarang saya memiliki lembar di bawah ini di buku kerja saya.

Tidak ada sheet yang disebut "Sheet1" & "Sheet2". Saat kita menjalankan kode tersebut, maka akan menemui error seperti di bawah ini.

Karena tidak ada sheet yang dinamai sebagai "Sheet1", ia mengalami kesalahan "Subscript out of range". Untuk menangani kesalahan ini, saya akan menambahkan pernyataan penanganan kesalahan "On Error Resume Next" di bagian atas makro.

Kode:

Sub On_ErrorExample1 () Pada Kesalahan Lanjutkan Lembar Kerja Berikutnya ("Sheet1"). Pilih Rentang ("A1"). Nilai = 100 Lembar Kerja ("Lembar2"). Pilih Rentang ("A1"). Nilai = 100 End Sub

Sekarang jalankan kode dan lihat apa yang terjadi.

Itu tidak akan memberikan pesan kesalahan apa pun karena pernyataan penangan kesalahan On Error Resume Next diaktifkan.

Bayangkan skenario di mana kita perlu mengabaikan kesalahan jika lembar kerja "Sheet1" tidak tersedia, tetapi kita perlu memberi tahu jika tidak ada lembar kerja yang disebut "Sheet2".

Karena kita telah menambahkan On Error Resume Next di bagian atas, itu sudah mulai menangani kesalahan, tetapi pada saat yang sama, kita perlu menentukan berapa banyak baris yang kita perlukan untuk mengabaikan kesalahan ini.

Dalam contoh ini, kita hanya perlu mengabaikan kesalahan untuk lembar kerja pertama tetapi untuk lembar kedua dan seterusnya. Kami membutuhkan kesalahan terjadi jika tidak ada lembar kerja "Sheet2". Jadi setelah kode lembar kerja pertama menambahkan baris menonaktifkan kesalahan On Error GoTo 0.

Kode:

Sub On_ErrorExample1 () Pada Kesalahan Lanjutkan Lembar Kerja Berikutnya ("Sheet1"). Pilih Rentang ("A1"). Nilai = 100 Pada Kesalahan GoTo 0 Lembar Kerja ("Lembar2"). Pilih Rentang ("A1"). Nilai = 100 Akhiri Sub

Sekarang jalankan kode baris demi baris untuk melihat dampaknya dengan menekan tombol F8.

Sekarang, jika Anda menekan tombol F8 setelah eksekusi kode melompat ke baris berikutnya, dan tugas baris aktif akan dijalankan. Sekarang baris aktif (garis berwarna kuning) adalah penanganan kesalahan "On Error Resume Next", dan pengendali error akan diaktifkan.

Sekarang terjadi kesalahan. Ini akan diabaikan sampai menjalankan penangan kesalahan menonaktifkan kode " On Error GoTo 0 " pernyataan.

Dalam percobaan sebelumnya, kami menemukan kesalahan tetapi tekan tombol F8 sekali lagi dan lihat keajaibannya.

Tanpa memberikan kesalahan apa pun, ia telah melanjutkan eksekusi kode meskipun tidak ada lembar kerja "Sheet2" untuk dipilih. Sekarang tekan F8 lagi.

Karena tidak ada Sheet1, ia tidak dapat memasukkan nilai di sel A1 sebagai 500 tetapi yang dilakukannya adalah akan memasukkan nilai 500 ke sel A1, di lembar kerja mana pun yang aktif. Lembar aktif saya ketika saya mengeksekusi kode adalah "Sheet3", sehingga nilai 100 dimasukkan ke sel A1.

Sekarang baris kode aktif adalah " On Error GoTo 0 " dengan menekan tombol F8. Tugas baris ini akan dijalankan.

Sejak "On Error GoTo 0" dijalankan, itu telah menghentikan proses penanganan kesalahan dan sekali lagi mulai menampilkan kesalahan jika terjadi. Tekan tombol F8 dan lihat kesalahannya.

Dalam kasus sebelumnya tanpa On Error GoTo 0, error ini juga diabaikan, tetapi karena kami telah menambahkan penangan error disabler, error tersebut mulai ditampilkan lagi.

Hal-hal yang Perlu Diingat di sini

  • Baik On Error Resume Next dan On Error GoTo 0 harus digunakan sebagai " Pengaktif Penangan Kesalahan " dan " Penanganan Kesalahan Penanggulangan ".
  • Setiap baris kode di antara dua pernyataan ini mengalami kesalahan, itu akan diabaikan.
  • Jika ada pernyataan On Error GoTo 0, maka setelah keluar dari subprocedure error handler akan dinonaktifkan.

Artikel yang menarik...