Jenis Kesalahan di VBA untuk Excel

Pengguna akan sering menemukan berbagai jenis kesalahan di VBA. Di bawah ini, kami menawarkan beberapa strategi untuk menangani dan mengatasinya. Kami akan membahas teknik yang dapat Anda gunakan untuk menginterogasi kode Anda selama pengujian, serta metode untuk menangkap kesalahan saat runtime.

Jenis Kesalahan di VBA untuk Excel

Menguji dan melacak berbagai jenis kesalahan dalam kode VBA bisa memakan waktu dan membuat frustrasi. Tidak jarang mendengar programmer Programming Programming adalah proses menulis instruksi untuk dilakukan oleh komputer. Ini mirip dengan resep untuk manusia. Resep berisi daftar tindakan yang mengatakan bahwa lebih dari 30% waktunya dihabiskan untuk pengujian.

Seiring waktu, Anda akan menjadi lebih baik dalam menghindari kesalahan, tetapi sepertinya Anda tidak akan pernah menulis kode yang sempurna, untuk pertama kali. Dengan mempelajari cara menghindari, menangani, dan melacak kesalahan VBA, Anda akan menghemat banyak waktu di masa mendatang.

Jenis Kesalahan VBA

Untuk mempermudah, kami telah mengategorikan jenis kesalahan pengkodean menjadi tiga kelompok. Untuk setiap kelompok, kita akan mempelajari beberapa contoh, dan kemudian membahas bagaimana Anda dapat menyelidiki dan menyelesaikannya.

1. Kesalahan sintaks - Baris kode tertentu tidak ditulis dengan benar

2. Kompilasi kesalahan - Masalah yang terjadi saat menyusun baris kode, meskipun baris kode individual tampaknya masuk akal

3. Runtime error - Ketika kode biasanya benar pada prinsipnya, tetapi tindakan yang diambil oleh pengguna atau data yang digunakan menyebabkan kesalahan yang tidak terduga.

Apa itu Syntax Errors?

Kesalahan sintaks adalah cara VBA untuk memberi tahu Anda apakah kode Anda masuk akal, pada level paling dasar. Kita dapat membuat perbandingan sederhana dengan aturan penulisan kalimat dalam bahasa Inggris:

  • Sebuah subjek diperlukan.
  • Kata kerja diperlukan.
  • Sebuah modal yang surat diperlukan di awal.
  • Tanda baca harus ada di akhir.
  • Objek, kata sifat, dan fitur tata bahasa lainnya adalah opsional.

Jane menemukan 18 kesalahan dalam kode VBA-nya .

Dengan cara yang sama, VBA memberlakukan aturan tertentu atas apa yang diperlukan dalam situasi tertentu. Misalnya, saat memulai pernyataan IF bersyarat dasar dalam kode Anda, Anda harus mereplikasi aturan sintaks berikut untuk baris pertama pernyataan IF;

  • Ini harus dimulai dengan If
  • Berikutnya harus menjadi tes logis , seperti x> 10
  • Akhirnya, itu harus diakhiri dengan kata lalu

Jika NumberErrors> 20 maka

Jika Anda melanggar aturan bahasa Inggris atau VBA di atas, tata bahasa (Inggris) atau sintaksis (VBA) Anda dianggap salah.

Bagaimana Mengidentifikasi Kesalahan Sintaks

Editor VBA menyoroti kesalahan sintaks dengan warna merah, memungkinkan Anda mengidentifikasi dan mengatasinya dengan mudah. Selain itu, jika Anda mencoba menjalankan kode atau memulai baris baru, Anda akan melihat pesan kesalahan sintaks di bawah ini.

Kesalahan sintaks dasar:

Sintaks dasar erro

Kotak pesan kesalahan sintaks:

Kotak Pesan Galat Sintaks

Untuk memastikan pemeriksaan terjadi saat Anda mengetik, aktifkan "Pemeriksaan Sintaks Otomatis" di menu Opsi.

Pemeriksaan Sintaks Otomatis

Cara Mengatasi Kesalahan Sintaks

Kesalahan sintaks menunjukkan kesalahan dalam cara penulisan baris tertentu dari kode Anda. Mereka harus diperbaiki sebelum Anda dapat menjalankan kode Anda. Dengan pengalaman, Anda hanya perlu teks merah untuk menemukan kesalahan tersebut. Tetapi jika Anda masih buntu, cukup telusuri secara online untuk "jika pernyataan sintaks vba" atau variasi mana pun yang sesuai dengan kebutuhan Anda, dan Anda akan menemukan banyak contoh baris spesifik yang Anda coba tulis.

Apa itu Compile Errors?

Kesalahan kompilasi merujuk ke grup kesalahan VBA yang lebih luas, yang mencakup kesalahan sintaks. Kesalahan kompilasi juga mengidentifikasi masalah dengan kode Anda jika dianggap secara keseluruhan. Sintaks setiap baris mungkin benar, tetapi jika disatukan, baris kode Anda tidak masuk akal. Kesalahan kompilasi disorot saat Anda mengkompilasi atau menjalankan kode Anda.

Bagaimana Mengidentifikasi Kesalahan Kompilasi

Saat Anda menjalankan kode VBA, kesalahan kompilasi akan ditampilkan di kotak dialog VBA seperti contoh di bawah ini.

Alternatifnya, jika proyek Anda panjang atau rumit dan melibatkan banyak rutinitas, akan sangat membantu jika Anda mengkompilasi kode sebelum Anda menjalankannya. Ini mencegah situasi di mana setengah dari kode Anda berjalan dengan sukses dan kemudian kesalahan muncul. Anda dapat mengkompilasi kode VBA Anda dengan mengklik Menu Debug → Compile VBA Project.

Contoh 1

Kesalahan kompilasi untuk bagian "End if" yang hilang dari pernyataan IF. Setiap baris individu dalam kode benar, tetapi bersama-sama, mereka tidak mewakili pernyataan IF yang lengkap.

Compile Error - Contoh 1

Contoh 2

Dalam contoh ini, proses kompilasi VBA mendeteksi kesalahan sintaks, disorot dengan warna merah. VBA menunjukkan bahwa kode di bawah ini kehilangan tanda kurung tutup pada fungsi tersebut.

Compile Error - Contoh 2

Contoh 3

Kesalahan kompilasi biasa terjadi saat menggunakan Option Explicit dan terjadi ketika variabel belum ditentukan secara eksplisit. Dengan Option Explicit diaktifkan, pernyataan Dim diperlukan untuk mendeklarasikan semua variabel sebelum dapat digunakan dalam kode Anda.

Compile Error - Contoh 3

Cara Mengatasi Kesalahan Kompilasi

Kesalahan kompilasi VBA akan mencegah rutinitas yang terpengaruh berjalan. Sampai Anda memperbaikinya, kode Anda tidak dapat diinterpretasikan dengan benar oleh VBA. Kotak pesan kesalahan sering memberikan saran yang lebih berguna daripada dengan kesalahan sintaks.

Jika tidak segera jelas bagi Anda apa masalahnya dari pesan kesalahan, coba gunakan Pusat Bantuan Microsoft untuk mendapatkan gambaran tentang bagaimana pernyataan atau fungsi Anda harus ditulis. Berikut adalah contoh pesan kesalahan "Blokir jika tanpa akhir jika" di situs web Microsoft.

Blokir jika tanpa akhir jika

Apa itu Runtime Errors?

Setelah Anda memperbaiki kesalahan sintaks dan mengkompilasi kesalahan, Anda siap untuk mulai menguji atau menjalankan kode Anda dengan benar untuk melihat seberapa baik itu mengeksekusi tindakan atau perhitungan yang Anda inginkan. Kami menyebut periode pengujian, atau eksekusi langsung kode, "runtime".

Kesalahan waktu proses tidak dapat dideteksi hanya dengan melihat kode; mereka adalah hasil dari kode Anda yang berinteraksi dengan input atau data tertentu pada saat itu.

Error runtime sering kali disebabkan oleh data yang tidak diharapkan diteruskan ke kode VBA, tipe data yang tidak cocok, pembagian dengan angka nol yang tidak terduga, dan rentang sel yang ditentukan tidak tersedia. Error runtime juga merupakan yang paling bervariasi dan kompleks untuk dilacak dan diperbaiki.

Bagaimana Mengidentifikasi Kesalahan Runtime

VBA Debug VBA: Cara Men-debug Kode Saat menulis dan menjalankan kode VBA, penting bagi pengguna untuk mempelajari cara men-debug kesalahan kode. Pengguna Excel berharap bahwa fungsi kode menyoroti kode masalah dengan warna kuning dan memberi kita petunjuk kecil tentang apa yang menyebabkan masalah.

Contoh 1

Meskipun kode di bawah ini hanya membagi satu angka dengan angka lainnya, ada beberapa contoh yang tidak memungkinkan. Misalnya, jika sel A1 = 2 dan sel A2 = 0, tidak mungkin membagi dengan nol. Kotak error runtime menyertakan tombol debug, yang menyoroti kode masalah.

Runtime Error - Contoh 1

Kesalahan Waktu Proses - Contoh 1a

Contoh 2

Dalam contoh ini, saya membuat array untuk mengumpulkan nama perusahaan n di lembar kerja saya. Saya kemudian mencoba mereferensikan item keenam, yang mungkin ada atau mungkin tidak ada pada waktu berjalan. VBA menampilkan pesan error runtime dan memungkinkan saya menekan Debug untuk menyelidiki masalah tersebut.

Runtime Error - Contoh 2

Setelah saya menekan Debug, VBA menyorot baris kode yang menyebabkan masalah. Sekarang terserah saya untuk menggunakan pesan "Subscript out of range" untuk mencari tahu apa yang salah. Kesalahan subscript out of range umumnya berarti bahwa kode Anda pada prinsipnya baik, tetapi item tertentu yang Anda cari tidak dapat ditemukan. Paling umum, ini akan terjadi saat mereferensikan sel atau rentang di Excel, serta array dalam kode VBA Anda.

Runtime Error - Contoh 2a

Untuk memastikan fungsi Debug diaktifkan, di menu Opsi> Umum> Perangkap Kesalahan, status defaultnya adalah "Hentikan Kesalahan yang Tidak Ditangani". Biarkan opsi dicentang.

Hentikan Kesalahan yang Tidak Tertangani

Cara Mengatasi Error Runtime

Karena kesalahan runtime bervariasi dan kompleks di alam, solusinya juga bervariasi. Dua metode umum untuk mengurangi kesalahan waktu proses adalah:

Error Trapping

Ide yang bagus untuk memikirkan beberapa skenario yang mungkin ditemui kode Anda. Yang lebih baik adalah menguji kode Anda pada data praktik atau dengan pengguna nyata. Ini akan memungkinkan Anda untuk mengenali skenario seperti itu di VBA Anda, dengan kode bercabang menjadi hasil yang berbeda, tergantung pada apakah ada kesalahan.

Contoh 1

Di sini, baris 'On Error Resume Next' memaksa kode untuk melanjutkan, bahkan jika kesalahan terdeteksi. Kami kemudian menggunakan tes If Err> 0 untuk membuat pesan peringatan, hanya jika ada kesalahan. 'On Error Goto 0' mengatur ulang VBA ke status defaultnya.

Error Trapping - Contoh 1

Contoh 2

Di sini, kode menghitung pendapatan per hari, berdasarkan pendapatan bulanan, dan jumlah hari yang ditentukan. Jika jumlah hari tidak tersedia, kami melompat ke titik yang ditentukan dalam kode kami yang disebut "NoDaysInMonthProvided :," di mana kami menggunakan jumlah hari rata-rata dalam sebulan sebagai asumsi dasar. Meskipun sederhana, ini menunjukkan dengan jelas bagaimana menjebak kesalahan dan melompat ke titik lain dalam kode Anda.

Error Trapping - Contoh 2

Hapus Petunjuk Pengguna

Dokumentasi yang jelas dan label lembar kerja akan memastikan bahwa pengguna Anda berinteraksi dengan model Anda sesuai keinginan Anda. Ini akan membantu mencegah mereka saat memasukkan teks, bukan angka, atau meninggalkan nol yang nantinya dapat memengaruhi kode Anda.

Ringkasan

Ada tiga jenis kesalahan utama di VBA yang dapat memengaruhi kode Anda dengan cara berbeda. Penting untuk mengaktifkan opsi pendeteksi kesalahan VBA, seperti debugger dan pemeriksaan sintaks otomatis. Mereka akan membantu Anda menentukan lokasi dan sifat kesalahan.

Sumber Daya Lainnya

Finance adalah penyedia resmi Certified Banking & Credit Analyst (CBCA) ™ CBCA ™ Certification Akreditasi Certified Banking & Credit Analyst (CBCA) ™ adalah standar global untuk analis kredit yang mencakup keuangan, akuntansi, analisis kredit, analisis arus kas , pemodelan perjanjian, pembayaran kembali pinjaman, dan lainnya. program sertifikasi, yang dirancang untuk membantu siapa saja menjadi analis keuangan kelas dunia. Untuk terus memajukan karier Anda, sumber daya tambahan di bawah ini akan berguna:

  • #REF Kesalahan Excel #REF Kesalahan Excel #REF Kesalahan Excel menyebabkan masalah besar dalam spreadsheet. Pelajari cara menemukan dan memperbaiki kesalahan #REF di Excel dalam tutorial singkat ini dengan contoh & tangkapan layar. SEBUAH #REF! kesalahan ("ref" untuk referensi) adalah pesan yang ditampilkan Excel saat rumus mereferensikan sel yang sudah tidak ada lagi, yang disebabkan oleh penghapusan sel yang
  • Contoh VBA Excel Contoh VBA Excel Excel VBA memungkinkan pengguna membuat makro yang mengotomatiskan proses dalam Excel. Panduan ini akan menggunakan contoh Excel VBA untuk menunjukkan cara merekam makro dengan menyiapkan makro, cara mendeklarasikan variabel, dan cara mereferensikan data.
  • Tip Menulis VBA di Excel Tip Menulis VBA di Excel Di bawah ini adalah sembilan tip untuk menulis VBA di Excel. VBA untuk Excel memperkenalkan kemungkinan yang tak terhitung jumlahnya untuk penghitungan kustom dan otomatisasi.
  • Metode VBA Metode VBA Metode VBA adalah potongan kode yang dilampirkan ke objek VBA, variabel, atau referensi data yang memberi tahu Excel tindakan apa yang harus dilakukan terkait dengan objek tersebut. Menyalin, menempel, dan memilih hanyalah beberapa contoh metode VBA yang dapat dilakukan.

Direkomendasikan

Apakah Crackstreams dimatikan?
2022
Apakah pusat komando MC aman?
2022
Apakah Taliesin meninggalkan peran penting?
2022