VBA Pada Kesalahan GoTo - Jenis Pernyataan On Error di VBA

Excel VBA Pada Kesalahan GoTo

Kesalahan adalah bagian tak terpisahkan dari bahasa pengkodean apa pun, dan makro VBA tidak berbeda dari ini. Menurut saya, menemukan mengapa kesalahan terjadi adalah 90% dari pekerjaan selesai, dan 10% terletak pada cara memperbaiki kesalahan itu. Dalam setiap bahasa pengkodean, pembuat kode menggunakan caranya sendiri untuk menangani kesalahan dalam pengkodean mereka, begitu juga kami menggunakan pengkodean VBA. Seringkali, kita perlu mengabaikan kesalahan, atau sering kali kita mungkin ingin pergi ke hal-hal tertentu ketika kesalahan terjadi. "On Error" adalah pernyataan yang perlu kita gunakan di VBA untuk menangani error.

Pernyataan ini memiliki tiga jenis pernyataan, dan di bawah ini adalah daftarnya.

  1. Pada Error Goto 0
  2. On Error Goto (label)
  3. Pada Kesalahan Lanjutkan Berikutnya

Pada artikel ini, kita akan melihat bagaimana ketiga pernyataan ini digunakan dalam pengkodean VBA untuk menangani segala jenis kesalahan.

Bagaimana cara menggunakan VBA On Error Statement?

# 1 - Saat Kesalahan Lanjutkan Berikutnya

Seperti pernyataan itu sendiri mengatakan, "On Error Resume Next" berarti setiap kali kesalahan terjadi dalam kode "melanjutkan" baris kode berikutnya dengan mengabaikan kode baris kesalahan. Sekarang lihat kode di bawah ini.

Dalam kode di bawah ini, saya telah menyebutkan nama lembar kerja dan meminta untuk memasukkan nilai di sel pertama sebagai "Pengujian Kesalahan".

Kode:

Sub On_Error_Resume_Next () Lembar Kerja ("Ws 1"). Pilih Rentang ("A1"). Value = "Error Testing" Lembar Kerja ("Ws 2"). Pilih Rentang ("A1"). Value = "Error Testing" Lembar Kerja ( "Ws 3"). Pilih Rentang ("A1"). Nilai = "Pengujian Kesalahan" Lembar Kerja ("Ws 4"). Pilih Rentang ("A1"). Nilai = "Pengujian Kesalahan" End Sub

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

  • Saya akan menjalankan kode dan melihat apa yang terjadi.
  • Kami mendapat kesalahan "Subscript Out of Range", klik "Debug" untuk melihat di baris mana kami mendapatkan kesalahan.
  • Jadi di baris "Worksheets (" Ws 3 ") .Select," kami mendapat error. Ini karena, di workbook kita, tidak ada worksheet yang bernama “Ws 3”, sehingga terjadi error.

Dalam kasus seperti itu, kami mungkin ingin mengabaikan kesalahan dan melanjutkan eksekusi kode ke baris berikutnya. Di sinilah penanganan kesalahan "On Error Resume Next" kami masuk ke dalam gambar.

  • Yang perlu kita lakukan adalah menambahkan baris "On Error Resume Next" di awal makro.

Sekarang jalankan kode ini, dan itu tidak akan menampilkan pesan kesalahan apa pun karena setiap kali kode menemukan kesalahan, itu akan mengabaikan kesalahan dan melanjutkan ke baris kode berikutnya.

# 2 - Saat Kesalahan GoTo 0

Ini bukan penangan kesalahan melainkan enabler pesan kesalahan setelah kami menonaktifkan pesan kesalahan dengan menggunakan pernyataan "On Error Resume Next".

Saat Anda menggunakan pernyataan "Lanjutkan Berikutnya", makro VBA mulai mengabaikan segala jenis kesalahan yang terjadi dan terus melanjutkan dengan baris kode berikutnya. Tetapi kami tidak ingin ini terjadi setiap saat karena beberapa kesalahan perlu kami abaikan dengan sengaja, kami memerlukan pemberitahuan.

Jika ada kumpulan kode tertentu yang membuat kesalahan dalam blok kode itu, hanya kita yang perlu mengabaikan kesalahan di bagian kode lainnya. Kami tidak ingin mengabaikan kesalahan tersebut.

  • Lihatlah gambar di bawah ini untuk penggunaan pernyataan "On Error GoTo 0".

Jadi sekarang kesalahan akan diabaikan sampai kode menemukan kesalahan beri tahu enabler "On Error GoTo 0" setelah baris kode ini menjalankan makro kembali normal dan mulai menampilkan pesan kesalahan seperti biasa.

# 3 - Pada Kesalahan GoTo Label

Kami telah melihat bagaimana mengabaikan kesalahan dan bagaimana mengaktifkan kembali pemberitahuan kesalahan. Sekarang dengan menggunakan metode ini, kita dapat pergi ke baris kode tertentu.

Dalam metode ini, "Label" berarti kita dapat memberikan nama apa pun ke label ini, dan label yang sama juga harus diberikan di baris kode yang diminta.

Misalnya, lihat kode yang sama dari contoh di atas.

Sekarang mari kita jalankan kode baris demi baris dengan menekan tombol fungsi F8.

Sekarang makro akan membaca pernyataan penanganan kesalahan; tekan tombol F8 jalankan kode 2 lembar kerja pertama.

Sekarang makro akan mengeksekusi kode lembar kerja ketiga, yang tidak ada di buku kerja, tekan tombol F8, dan lihat apa yang terjadi.

Karena makro mengalami kesalahan pada baris kode di bawah ini, makro telah melompat ke label penanganan kesalahan "ErrorMessage," yang dijelaskan melalui pernyataan "On Error GoTo (Label)".

Sekarang kotak pesan akan menampilkan pesan sebagai "Terjadi Kesalahan & Keluar dari Makro".

Hal-hal untuk diingat

  • Vba On Error GoTo 0 akan mengaktifkan notifikasi kesalahan sekali lagi, jadi jangan lupa untuk menambahkan ini setelah menyediakan penangan kesalahan.
  • Anda harus benar-benar yakin di bagian mana dari kode yang ingin Anda abaikan kesalahannya, jadi lampirkan penangan kesalahan hanya untuk blok kode itu.

Artikel yang menarik...