Saat Kesalahan Lanjutkan Berikutnya: Menangani Kesalahan di Excel VBA

  • Bagikan Ini
Hugh West

Di Microsoft Excel VBA, penanganan kesalahan adalah salah satu tugas penting. Jika Anda seorang pembuat kode, Anda tahu pentingnya penanganan kesalahan untuk membangun aplikasi yang sempurna. Kesalahan apa pun dalam pernyataan dapat menghambat kode VBA Anda dengan banyak cara. Jadi, Anda harus berhati-hati untuk menangani kesalahan tersebut saat menjalankan kode VBA. Ada banyak kesalahan run-time yang dapat Anda hadapi saat menggunakan kode VBA di Excel.salah satunya, kita menggunakan Pada Kesalahan Lanjutkan Berikutnya pernyataan.

Dalam tutorial ini, Anda akan belajar menggunakan Pada Kesalahan Lanjutkan Berikutnya Tutorial ini akan tepat sasaran dengan contoh yang sesuai dan ilustrasi yang tepat. Jadi, tetaplah bersama kami.

Unduh Buku Kerja Praktik

VBA Pada Kesalahan Lanjutkan Berikutnya.xlsm

Penanganan Kesalahan di Excel VBA

Saat bekerja dengan Microsoft Excel VBA, Anda akan menghadapi banyak kesalahan dalam sub-prosedur Anda. Ketika VBA tidak dapat mengeksekusi pernyataan, VBA akan melempar kesalahan run-time.

Excel secara otomatis menangani kesalahan ini, jadi ketika kesalahan run-time muncul, itu menampilkan pesan kesalahan default seperti berikut ini:

Sekarang, Anda bisa menangani ini secara beragam dengan beberapa pernyataan VBA. Saya akan membahasnya di bagian selanjutnya.

Baca selengkapnya: Cara Memperbaiki #REF! Kesalahan di Excel (6 Solusi)

Pada Pernyataan Kesalahan dalam VBA

Untuk menangani kesalahan waktu berjalan, kami menginstruksikan Excel dengan pernyataan On Error. Ini memutuskan jenis operasi apa yang ingin kami lakukan selanjutnya dengan segera. Pada dasarnya, kami menonaktifkan kesalahan ini dengan jenis penanganan kesalahan ini.

Kami menggunakan tiga jenis pernyataan On Error (sintaks) di Excel VBA.

  • Pada Kesalahan GoTo garis
  • Pada Kesalahan Lanjutkan Berikutnya
  • Pada Kesalahan GoTo 0

Ketika Anda menemukan kesalahan, gunakan perintah On Error. Karena jika Anda tidak menggunakan perintah Pada Kesalahan deklarasi, kesalahan run-time tersebut akan menjadi bencana. Ini akan menunjukkan prompt kesalahan dan menghentikan eksekusi.

Ketika kita menggunakan Pada Kesalahan kita mengaktifkan error handler yang "diaktifkan". Error handler yang "aktif" adalah handler yang diaktifkan yang memulai operasi penanganan kesalahan. Jika kesalahan muncul saat error handler terlibat, error handler metode saat ini tidak dapat menanggung kesalahan tersebut. Setelah itu, kontrol kembali ke prosedur pemanggilan.

Jika proses pemanggilan memiliki error handler yang diaktifkan, ia akan dipicu untuk menangani kesalahan. Jika error handler sistem pemanggilan Anda juga diaktifkan, kontrol akan dikembalikan melalui prosedur pemanggilan sebelumnya sampai menemukan error handler yang diaktifkan tetapi tidak aktif. Jika tidak dapat menemukan error handler yang diaktifkan yang menganggur, ini berarti kesalahan tersebut adalah bencana pada titik terjadinya.

Setiap kali penangan kesalahan memberikan otoritas kembali ke prosedur pemanggilan, prosedur itu mengembangkan prosedur yang ada. Eksekusi dimulai kembali dalam prosedur yang ada pada saat yang dipilih oleh prosedur yang ada. Melanjutkan ketika error handler menangani kesalahan dalam prosedur apa pun.

'Saat Kesalahan Lanjutkan Berikutnya' di VBA

Sekarang, yang Pada Kesalahan Lanjutkan Berikutnya pernyataan memberi tahu VBA untuk mengabaikan baris kode apa pun yang memiliki kesalahan, dan segera melanjutkan ke baris kode berikut. Setelah itu, kode VBA Excel akan melewati baris atau baris yang mengandung kesalahan di dalamnya, dan melanjutkan ke urutan kode berikut.

The Pada Kesalahan Lanjutkan Berikutnya pernyataan memaksa implementasi untuk melanjutkan dengan perintah yang langsung mengejar baris kode yang menyebabkan kesalahan run-time. Pernyataan ini mengizinkan eksekusi untuk melewatkan bahkan jika ada kesalahan run-time. Jika Anda berpikir baris kode tertentu dapat menghasilkan kesalahan, tempatkan rutinitas penanganan kesalahan di sana daripada meletakkannya di lokasi lain dalam prosedur. Pada Kesalahan Lanjutkan Berikutnya menjadi idle ketika kode Anda memanggil prosedur lain. Jadi, ketika Anda membutuhkan penanganan kesalahan yang cocok dalam rutinitas itu, Anda harus menjalankan sebuah Pada Kesalahan Lanjutkan Berikutnya perintah di setiap pola bernama.

Hal ini masuk akal ketika baris kode yang dapat Anda lewati tidak diperlukan untuk menjalankan makro dengan baik. Tapi ingat, hal ini dapat merugikan jika Anda menggunakannya secara tidak benar karena dapat memberikan hasil yang tidak diinginkan.

Ingat:

Pernyataan On Error Resume Next tidak memperbaiki runtime error. Ini pada dasarnya mengabaikan kesalahan di mana eksekusi VB Anda akan dilanjutkan dari pernyataan yang telah menghasilkan runtime error.

Lihatlah kode berikut ini:

 Sub membagi() MsgBox 5 / 0 MsgBox 5 / 2 End Sub 

Kita mencoba membagi 5 dengan 0 dan 1. Mari kita jalankan kodenya. Ini akan menunjukkan output berikut:

Kita tidak bisa membagi angka dengan 0. Ketika Anda men-debug kodenya, Anda akan melihat yang berikut ini:

Ketika program VB menemukan kesalahan, ia segera menghentikan prosedur. Ia tidak mengeksekusi baris berikut.

Sekarang, mari kita implementasikan Pada Kesalahan Lanjutkan Berikutnya sebelum pernyataan kesalahan:

 Sub membagi() Pada Kesalahan Lanjutkan Berikutnya MsgBox 5 / 0 MsgBox 5 / 2 End Sub 

Setelah menjalankan kode, Anda akan melihat yang berikut ini:

Seperti yang bisa Anda lihat, VBA mengabaikan baris yang menghasilkan error dan langsung melanjutkan ke baris kode berikutnya. Dengan cara ini, Anda bisa menggunakan Pada Kesalahan Lanjutkan Berikutnya pernyataan untuk menangani kesalahan di Excel VBA.

Contoh 'Pada Kesalahan Lanjutkan Berikutnya' di VBA

Dalam bagian berikut ini, saya akan memberi Anda dua contoh dari Pada Kesalahan Lanjutkan Berikutnya pernyataan yang dapat Anda terapkan ke dalam lembar kerja Excel Anda menggunakan VBA. Saya sarankan Anda mempelajari dan menerapkan semua ini ke buku kerja Anda. Ini pasti akan menambah pengetahuan Excel Anda.

1. Pernyataan 'On Error Resume Next' untuk Menyembunyikan Lembar Kerja

Sekarang, dalam contoh ini, saya akan menunjukkan kepada Anda kode VBA yang akan menyembunyikan semua lembar kerja buku kerja aktif Anda.

Lihatlah tangkapan layar berikut ini:

Di sini, kita memiliki empat lembar kerja. Kita akan menyembunyikan semuanya menggunakan kode VBA berikut:

 Sub hide_all_sheets() Dim copies As Worksheet For Each copies In ActiveWorkbook.Sheets copies.Visible = False Next copies End Sub 

Ketika Anda mengeksekusi kode berikut ini, Anda akan melihat kesalahan run-time berikut ini:

Excel menunjukkan error ini karena Anda tidak bisa menyembunyikan semua sheet dalam workbook. Jadi, Anda harus mengabaikan error tersebut. Untuk melakukan ini, Anda harus mengimplementasikan pernyataan On Error Resume Next di baris kode Anda.

 Sub hide_all_sheets() Dim copies As Worksheet On Error Resume Next For Each copies In ActiveWorkbook.Sheets copies.Visible = False Next copies End Sub 

Setelah menyelesaikan eksekusi kode VBA, Anda akan melihat output berikut ini:

Pada akhirnya, Anda tidak akan melihat kesalahan apa pun setelah eksekusi. Jadi, pernyataan On Error Resume Next kami bekerja dengan sangat baik dalam kode VBA.

Baca selengkapnya: Kesalahan di Excel dan Artinya (15 Kesalahan Berbeda)

2. Fungsi VLOOKUP dengan 'On Error Resume Next' di VBA

Dalam contoh ini, saya akan menunjukkan contoh fungsi VLOOKUP dalam VBA Sekarang, kode VBA ini juga menyertakan Pada Kesalahan Lanjutkan Berikutnya pernyataan.

Lihatlah tangkapan layar berikut ini:

Di sini, Anda bisa melihat beberapa nama orang dan usia mereka. Dalam tabel yang berdekatan, kita akan menggunakan VLOOKUP untuk menemukan nama dan usia orang tersebut.

Ketikkan kode berikut untuk melakukan ini:

 Sub VLOOKUP_Function() Dim i As Long For i = 5 To 9 Cells(i, 6).Value = WorksheetFunction.VLookup(Cells(i, 5), Range("B:C"), 2, 0) Next i End Sub 

Sekarang, jalankan makro tersebut. Anda akan melihat error berikut ini:

Sekarang, ini adalah kesalahan run-time. Mengapa hal itu terjadi? Lihatlah dataset lagi:

Seperti yang bisa Anda lihat, tidak ada data untuk "Aaron" dan "Emma". Itulah mengapa ia hanya mengeksekusi VLOOKUP untuk entri pertama. Setelah itu, eksekusi akan dihentikan. Sekarang, jika Anda ingin mengabaikan kesalahan dan melanjutkan untuk menemukan sisa usia, gunakan perintah Pada Kesalahan Lanjutkan Berikutnya pernyataan.

 Sub VLOOKUP_Function() Dim i As Long On Error Resume Next For i = 5 To 9 Cells(i, 6).Value = WorksheetFunction.VLookup(Cells(i, 5), Range("B:C"), 2, 0) Next i End Sub 

Setelah menjalankan kode VBA, Anda akan melihat output berikut ini:

Seperti yang bisa Anda lihat, dengan menerapkan Pada Kesalahan Lanjutkan Berikutnya Kode VBA kami tidak menemukan data Aaron dan Emma. Itulah mengapa ia mengabaikan nilai-nilai itu dan mengembalikan nilai lainnya di lembar kerja Excel.

Baca Juga: [Diperbaiki] Excel Menemukan Masalah dengan Satu atau Lebih Referensi Formula di Lembar Kerja Ini

Matikan 'Saat Kesalahan Lanjutkan Berikutnya' dengan Excel VBA

Sekarang, Anda mungkin berada dalam situasi di mana Anda ingin mengabaikan kesalahan untuk segmen tertentu dari kode VBA. Ingat, jika Anda menggunakan pernyataan On Error Resume Next dalam kode VBA, itu akan melewatkan semua kesalahan setelah itu. Sekarang, jika Anda ingin mematikannya dan mengaktifkan penanganan kesalahan untuk segmen lain, gunakan Pada Kesalahan GoTo 0 Ini akan mengaktifkan penanganan kesalahan lagi.

Penggunaan umum:

Sub error_handling()

Untuk mengabaikan kesalahan

Pada Kesalahan Lanjutkan Berikutnya

// baris kode

Untuk mengaktifkan Penanganan kesalahan

Pada Kesalahan GoTo 0

//baris kode

Akhiri sub

Lihatlah kode VBA berikut ini:

 Sub error_handling() Dim i As Long 'untuk mengabaikan error On Error Resume Next For i = 5 To 9 Cells(i, 6).Value = WorksheetFunction.VLookup(Cells(i, 5), Range("B:C"), 2, 0) Next i 'untuk mematikan error resume next On Error GoTo 0 MsgBox i / 0 End Sub 

Kita menggunakan kode yang sebelumnya untuk VLOOKUP Di sini ditambahkan potongan kode tambahan untuk mendemonstrasikannya. Kode kami akan mengabaikan kesalahan saat melakukan fungsi VLOOKUP tetapi akan mengaktifkan penanganan kesalahan setelah Pada Kesalahan GoTo 0 pernyataan.

Baca selengkapnya: Excel VBA: Matikan "Saat Kesalahan Lanjutkan Berikutnya"

VBA 'Pada Kesalahan GoTo'

Sebelumnya saya telah membahas penanganan error dengan menggunakan metode On Error. Seluruh artikel kita adalah tentang Pada Kesalahan Lanjutkan Berikutnya. Sekarang, ada juga dua jenis penanganan kesalahan yang akan saya bahas pada bagian berikut ini.

1. VBA Pada Kesalahan GoTo 0

The Pada Kesalahan Goto 0 adalah pengaturan bawaan Excel jika kode Anda tidak memiliki penangan kesalahan di dalamnya. Ini pada dasarnya menyiratkan bahwa ketika VBA menemukan kesalahan dengan Pada Kesalahan GoTo 0 , ia akan berhenti menjalankan kode dan menampilkan kotak pesan kesalahan tradisionalnya.

Pada Kesalahan GoTo 0 tidak mendefinisikan baris 0 sebagai awal dari kode penanganan kesalahan, bahkan jika metode tersebut memasukkan baris bernomor 0.

Lihatlah kode berikut ini:

 Sub Sub on_error_goto_0() Dim copies As Worksheet On Error Resume Next For Each copies In ActiveWorkbook.Sheets copies.Visible = False Next copies On Error GoTo 0 ActiveSheet.Name = "Copy-4" End Sub 

Kita telah menunjukkan kode ini kepada Anda. Kode ini pada dasarnya menyembunyikan semua lembar kerja di buku kerja Anda saat ini. Sekarang, saya memang memiliki sepotong kode tambahan dengan Pada Kesalahan GoTo 0 untuk menunjukkan kesalahan. Jika Anda menjalankan kode tersebut, Anda akan melihat yang berikut ini:

Ini menunjukkan kesalahan ini karena kita tidak bisa memiliki lembar dengan nama yang sama di buku kerja aktif.

2. VBA Pada baris GoTo Kesalahan

Sekarang, Anda juga bisa menginstruksikan Excel untuk menjalankan segmen kode lain jika menemukan kesalahan dengan menggunakan perintah Pada baris Error GoTo Ini memberitahu Excel untuk mengeksekusi sesuatu setelah menemukan kesalahan.

Argumen baris adalah tag baris atau nomor baris. Jika kode kita menyebabkan kesalahan run-time, kode tersebut akan berpindah ke baris tersebut, menyebabkan penangan kesalahan aktif dalam eksekusi. Ingat, baris yang Anda definisikan harus berada dalam prosedur yang tepat sebagai pernyataan On Error; jika tidak, itu akan menyebabkan kesalahan kompilasi.

Lihatlah kode berikut ini:

 Sub on_error_goto_line() Dim copies As Worksheet On Error Resume Next For Each copies In ActiveWorkbook.Sheets copies.Visible = False Next copies On Error GoTo error_handler ActiveSheet.Name = "Copy-4" Exit Sub error_handler: MsgBox "Ada juga sheet dengan nama yang sama. Coba yang berbeda." End Sub 

Anda telah melihat kodenya pada contoh sebelumnya. Ketika kita menggunakan Pada Kesalahan GoTo 0 Tetapi, di sini kami menggantinya dengan Pada baris Error GoTo pernyataan.

Sekarang, jalankan kode tersebut dan Anda akan melihat yang berikut ini:

Seperti yang bisa Anda lihat, ini tidak menampilkan kotak dialog kesalahan standar. Sebaliknya, ini menunjukkan kotak pesan kustom yang kita buat di error_handler Ketika Excel menemukan kesalahan apa pun, ia melompat ke segmen error_handler segmen dan menunjukkan kepada kita kotak pesan.

Kami juga menggunakan Keluar dari Sub dalam prosedur. Jika tidak ada lembar bernama " VLOOKUP ", kode VBA kita akan mengganti nama sheet yang aktif. Kemudian, kita harus menyelesaikan eksekusi di sini karena kita tidak perlu melanjutkan ke error handler dan menampilkan kotak pesan.

VBA 'On Error' Tidak Bekerja di Excel

Kadang-kadang, tidak peduli seberapa keras Anda mencoba, metode On Error tidak akan berfungsi. Sebelumnya, kami mengimplementasikan metode Pada Kesalahan untuk menangani error. Tetapi, terkadang akan muncul error bahkan jika Anda menggunakan metode Pada Kesalahan Lanjutkan Berikutnya atau Pada Kesalahan GoTo 0 Mungkin ada beberapa alasan dalam kode Anda yang harus Anda perbaiki. Saya tidak akan menunjukkannya kepada Anda.

Alasan dasar untuk VBA ' Pada Kesalahan' Tidak Bekerja di Excel adalah menyalakan opsi "Break on All Errors" di Excel.

Ikuti langkah-langkah ini untuk mengatasinya:

📌 Langkah-langkah

  • Pertama, tekan Alt+F11 pada keyboard Anda untuk membuka editor VBA.
  • Sekarang, klik pada Alat> Opsi.

  • Setelah itu, klik pada Umum tab di Opsi kotak dialog.

  • Di sini, Anda bisa melihat, " Istirahat pada Semua Kesalahan " sudah dicentang. Ini pada dasarnya mencegah Anda menangani kesalahan.
  • Untuk mengubahnya, pilih opsi " Istirahat pada Kesalahan yang Tidak Ditangani " dan klik pada OK .

Saya harap ini akan memperbaiki masalah Anda tentang VBA "On Error" yang tidak berfungsi di Excel.

Baca selengkapnya: Alasan dan Koreksi Kesalahan NAMA di Excel (10 Contoh)

💬 Hal-hal yang Perlu Diingat

✎ Pada Kesalahan Lanjutkan Berikutnya tidak memperbaiki kesalahan. Pada dasarnya mengabaikan kesalahan dan melanjutkan ke pernyataan berikutnya.

Excel menjebak dan menyimpan kesalahan run-time di objek Err. Ketika kita menggunakan Pada Kesalahan Lanjutkan Berikutnya pernyataan, itu membersihkan properti objek Err.

Anda bisa mematikan Pada Kesalahan Lanjutkan Berikutnya pernyataan dalam kode VBA Anda di Excel dengan menambahkan Pada Kesalahan GoTo 0 pernyataan.

Kesimpulan

Sebagai penutup, saya harap tutorial ini telah memberi Anda sepotong pengetahuan yang berguna untuk menggunakan Pada Kesalahan Lanjutkan Berikutnya Saya sarankan Anda mempelajari dan menerapkan semua instruksi ini ke dataset Anda. Unduh buku kerja latihan dan coba sendiri. Juga, jangan ragu untuk memberikan umpan balik di bagian komentar. Umpan balik Anda yang berharga membuat kami termotivasi untuk membuat tutorial seperti ini.

Jangan lupa untuk memeriksa situs web kami Exceldemy.com untuk berbagai masalah dan solusi terkait Excel.

Teruslah mempelajari metode baru dan teruslah berkembang!

Hugh West adalah pelatih dan analis Excel yang sangat berpengalaman dengan pengalaman lebih dari 10 tahun di industri ini. Beliau meraih gelar Sarjana di bidang Akuntansi dan Keuangan dan gelar Master di bidang Administrasi Bisnis. Hugh memiliki hasrat untuk mengajar dan telah mengembangkan pendekatan pengajaran unik yang mudah diikuti dan dipahami. Pengetahuan ahlinya tentang Excel telah membantu ribuan siswa dan profesional di seluruh dunia meningkatkan keterampilan dan unggul dalam karier mereka. Melalui blognya, Hugh membagikan pengetahuannya kepada dunia, menawarkan tutorial Excel gratis dan pelatihan online untuk membantu individu dan bisnis mencapai potensi penuh mereka.