Kesalahan VBA

Kesalahan VBA

Excel VBA Pada Pernyataan Kesalahan

VBA On Error adalah jenis mekanisme penanganan kesalahan yang digunakan untuk memandu kode untuk melakukan apa jika menemui kesalahan. Umumnya, ketika kode menemui kesalahan, eksekusi berhenti. Namun, dengan pernyataan ini di dalam kode, eksekusi kode berlanjut karena memiliki serangkaian instruksi yang harus dilakukan saat menemukan kesalahan.

Mengantisipasi kesalahan dalam kode membuat Anda menjadi ahli dalam pengkodean VBA. Namun, Anda tidak dapat membuat kode 100% efisien. Bahkan jika Anda yakin tentang kode Anda dengan satu atau lain cara, itu mungkin menimbulkan kesalahan.

Hampir tidak mungkin untuk mengidentifikasi dan menangani setiap jenis kesalahan, tetapi kami memiliki cara yang berbeda untuk menangani kesalahan dalam VBAMenangani Kesalahan Dalam penanganan kesalahan VBAVBA mengacu pada pemecahan masalah berbagai jenis kesalahan yang ditemui saat bekerja dengan VBA. Baca selengkapnya. Saat menulis kode, Anda mungkin tidak mengantisipasi jenis kesalahan yang dapat muncul, tetapi jika ada kesalahan, Anda akan menghabiskan lebih banyak waktu untuk debug daripada menulis kode itu sendiri.

Apa itu Kesalahan?

Kesalahan tidak lain adalah sebaris kode yang tidak dapat dieksekusi karena fungsionalitas atau kode yang salah. Jadi, cobalah untuk mengantisipasi kesalahan dan menanganinya.

Misalnya, jika Anda mencoba menghapus sheet yang tidak ada, maka jelas, kami tidak dapat menjalankan baris kode tersebut.

Kesalahan terdiri dari tiga jenis. Salah satunya adalah kesalahan kompilasi karena variabel yang tidak dideklarasikan. Yang kedua adalah kesalahan entri data karena kesalahan entri oleh pembuat kode, dan yang ketiga adalah kesalahan run time karena VBA tidak dapat mengenali baris kode. Untuk mencoba mengakses atau mengerjakan lembar kerja atau buku kerja yang tidak ada.

Tapi kami memiliki pernyataan di VBA untuk menangani semua jenis kesalahan ini, yaitu pernyataan ‘On Error’.

Anda bebas menggunakan gambar ini di situs web Anda, templat, dll., Harap berikan kami tautan atribusiBagaimana Memberikan Atribusi? Tautan Artikel untuk Dihiperlink
Misalnya: Sumber: VBA On Error (wallstreetmojo.com)

Jenis Pernyataan On Error

Titik kunci penanganan kesalahan di VBA adalah pernyataan ‘On Error’. Misalnya, On Error, ‘resume next line’, ‘go to or jump to another line’, dll.

Pernyataan On Error memiliki tiga jenis pernyataan.

  • GoTo 0 berarti setiap kali terjadi kesalahan run time, excel atau VBA harus menampilkan kotak pesan kesalahan yang mengatakan jenis kesalahan yang ditemui. Segera setelah VBA mengeksekusi kode, itu menonaktifkan semua penangan kesalahan di blok tertentu pada kode tersebut.
  • Lanjutkan Berikutnya berarti setiap kali kesalahan terjadi, pernyataan ini menginstruksikan Excel untuk mengabaikan kesalahan tersebut dan beralih ke (melanjutkan berikutnya) baris kode berikutnya tanpa menampilkan pesan kesalahan apa pun. Itu tidak berarti itu akan memperbaiki kesalahan; sebaliknya, itu hanya mengabaikan kesalahan.
  • GoTo [label] berarti setiap kali VBA menemukan kesalahan, buka label yang ditetapkan. Itu membuat kode melompat ke baris tertentu yang disediakan oleh pembuat kode.

3 Cara Teratas untuk Menangani Kesalahan di VBA

#1 – Saat Kesalahan Lanjutkan Berikutnya

Asumsikan Anda membagi nilai 20 dengan 0. Anda telah mendeklarasikan variabel untuk menetapkan hasil pembagiannya.

Kode:

Sub OnError_Example1() Dim i Sebagai Integer i = 20/0 End Sub

Jika Anda menjalankan kode ini, itu akan membuang kesalahan di bawah ini.

Jadi, Anda tidak dapat membagi angka apa pun dengan nilai nol. Oleh karena itu, angka kesalahan run time adalah 11, yaitu ‘Pembagian dengan nol.’

Sekarang, kita akan menambahkan satu baris lagi ke kode.

Kode:

Sub OnError_Example1() Dim i Sebagai Integer, j Sebagai Integer i = 20 / 0 j = 20 / 2 End Sub

Kami akan menambahkan pernyataan, “On Error Resume Next,” di bagian atas.

Kode:

Sub OnError_Example1() Dim i Sebagai Integer, j Sebagai Integer On Error Lanjutkan Berikutnya i = 20 / 0 j = 20 / 2 End Sub

Sekarang, jika kita mengeksekusi kode ini, itu tidak akan memberi kita pesan kesalahan apapun. Sebaliknya, itu akan mengeksekusi baris kode berikutnya, yaitu, j = 20/2.

#2 – Pada Label Error GoTo

Kami telah mendeklarasikan tiga variabel.

Kode:

Sub OnError_Example1() Dim i Sebagai Integer, j Sebagai Integer, k Sebagai Integer

Untuk ketiga variabel ini, kami akan menetapkan perhitungan pembagian.

Kode:

Sub OnError_Example1() Dim i Sebagai Integer, j Sebagai Integer, k Sebagai Integer i = 20 / 0 j = 20 / 2 k = 10 / 5

Ini akan menunjukkan hasil dari ketiga perhitungan ini di kotak pesan.

Kode:

Sub OnError_Example1() Dim i Sebagai Integer, j Sebagai Integer, k Sebagai Integer i = 20 / 0 j = 20 / 2 k = 10 / 5 MsgBox “Nilai i adalah ” & i & vbNewLine & “Nilai j adalah ” & j & _ vbNewLine & “Nilai k adalah ” & k & vbNewLine End Sub

Kami akan mencoba mengeksekusi kode ini karena perhitungan “I” tidak tepat. Sayangnya, kita akan mendapatkan ‘Run-time error 11.’

Sekarang saya akan menambahkan pernyataan ‘On Error Resume Next’.

Kode:

Sub OnError_Example1() Dim i Sebagai Integer, j Sebagai Integer, k Sebagai Integer On Error Resume Next i = 20 / 0 j = 20 / 2 k = 10 / 5 MsgBox “Nilai i adalah ” & i & vbNewLine & “The nilai j adalah ” & j & _ vbNewLine & “Nilai k adalah ” & k & vbNewLine End Sub

Jika kita menjalankan ini, itu akan melewatkan perhitungan “I” dan menjalankan dua perhitungan yang tersisa, dan hasilnya adalah sebagai berikut.

Sekarang, alih-alih “On Error Resume Next,” kami akan menambahkan “On Error GoTo KCalculation.”

Kode:

Sub OnError_Example1() Dim i Sebagai Integer, j Sebagai Integer, k Sebagai Integer On Error GoTo KCalculation: i = 20 / 0 j = 20 / 2 KCalculation: k = 10 / 5 MsgBox “Nilai i adalah ” & i & vbNewLine & “Nilai j adalah ” & j & _ vbNewLine & “Nilai k adalah ” & k & vbNewLine End Sub

Catatan: Di sini, “KCalculation” adalah nama label kami. Anda dapat memberikan nama label Anda tanpa spasi.

Jika kita mengeksekusi baris kode ini, itu tidak akan melompat ke baris berikutnya. Sebaliknya itu akan melompat ke nama label yang telah kita masukkan, yaitu “KCalcualtion.” Di sini, itu akan mengabaikan kesalahan yang diberikan oleh “I.” Juga, itu tidak akan mengeksekusi perhitungan “j”, tetapi langsung melompat ke “KCalcualtion.”

#3 – Cetak Nomor Kesalahan di VBA

Di akhir kode, kami juga dapat mencetak nomor kesalahan di kotak pesan terpisah. Baris kode berikut akan melakukan pekerjaan ini.

Kode:

Err.Nomor

Sekarang, kita akan menjalankan kode ini. Kotak pesan pertama akan menampilkan hasil perhitungan.

Klik “OK.” Ini akan menampilkan satu kotak pesan lagi untuk menunjukkan nomor kesalahan.

Kami pergi 11; sebagai hasilnya, yaitu, Pembagian dengan Nol.

Kami juga bisa mendapatkan deskripsi kesalahan alih-alih nomornya. Kita perlu mengubah kodenya. Di bawah ini adalah kodenya.

Kode:

Err.Deskripsi

Ini akan menampilkan deskripsi seperti ini.

Hal-hal untuk diingat

  • Setelah memasukkan “On Error Resume Next” di akhir kode, jangan lupa tambahkan pernyataan “On Error GoTo 0.”
  • Nama label harus sama di kedua tempat.
  • Kita tidak perlu mendefinisikan nama label terlebih dahulu.
  • Pada akhirnya, selalu lihat kesalahan apa yang terjadi melalui kotak pesan terpisah.

Artikel yang Direkomendasikan

Artikel ini telah menjadi panduan untuk VBA On Error. Di sini, kita mempelajari tiga jenis pernyataan kesalahan: Pada Kesalahan GoTo 0, Pada Kesalahan Lanjutkan Selanjutnya, dan Pada Pernyataan Kesalahan GoTo, beserta beberapa contoh dan template Excel yang dapat diunduh. Di bawah ini adalah beberapa artikel Excel berguna yang terkait dengan VBA: –

  • Kesalahan VLOOKUP Excel
  • Rumus Kesalahan Baku
  • Rumus Kesalahan di Excel
  • Fungsi ISERROR VBA Excel
  • Rentang Set VBA

Related Posts