VBA Pada Kesalahan GoTo

Excel VBA Pada Kesalahan GoTo

Kesalahan adalah bagian tak terpisahkan dari bahasa pengkodean apa pun dan makro VBA tidak berbeda dari ini. Menurut pendapat saya, menemukan mengapa kesalahan terjadi adalah 90% dari pekerjaan selesai dan 10% terletak pada cara memperbaiki kesalahan itu. Dalam setiap pengkodean bahasa pengkode menggunakan cara mereka 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?

Anda dapat mengunduh Template Pernyataan VBA On Error GoTo ini di sini - Template Pernyataan VBA On Error GoTo

# 1 - Saat Kesalahan Lanjutkan Berikutnya

Seperti pernyataan itu sendiri mengatakan “On Error Resume Next” berarti setiap kali terjadi kesalahan pada kode “resume” 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 diminta 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.

  • Maka pada baris “Worksheets (“ Ws 3 ”) Select” kita mendapatkan error, hal ini dikarenakan di workbook kita tidak ada worksheet yang bernama “Ws 3”, sehingga terjadi error.

Dalam kasus seperti itu kita mungkin ingin mengabaikan kesalahan dan melanjutkan eksekusi kode ke baris berikutnya, di sinilah penanganan kesalahan "On Error Resume Next" kita muncul.

  • 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 sekumpulan kode tertentu yang membuat kesalahan dalam blok kode itu, kita hanya perlu mengabaikan kesalahan bagian lain dari kode tersebut, kita 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 pada 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 2 kode 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.