Isi kandungan
Salah satu ralat paling biasa yang kami hadapi semasa bekerja dengan VBA dalam Excel ialah jenis yang ditentukan pengguna tidak ditakrifkan. Dalam artikel ini, saya akan menunjukkan kepada anda sebab ralat ini disebabkan dan cara menyelesaikan ralat ini.
Muat turun Buku Kerja Amalan
Muat turun buku kerja amalan ini untuk bersenam semasa anda sedang membaca artikel ini.
Jenis Ditakrifkan Pengguna Tidak Ditakrifkan.xlsm
2 Punca dan Penyelesaian kepada Ditakrifkan Pengguna Jenis Tidak Ditakrifkan dalam Excel VBA
Terdapat 2 isu utama di sebalik ralat yang sering ditemui ini dalam Excel VBA . Mari terokainya secara terperinci dan ketahui cara untuk menyelesaikannya.
1. Ralat Ejaan Semasa Mengisytiharkan Pembolehubah
Ini adalah sebab utama di sebalik ralat ini. Selalunya, ralat “Jenis Ditentukan Pengguna tidak Ditentukan” disebabkan oleh ralat ejaan semasa mengisytiharkan pembolehubah.
Lihat baris kod berikut.
3052
Jika anda menjalankan kod ini, anda akan mendapat kotak ralat yang memberitahu anda tentang kehadiran ralat “Jenis Ditentukan Pengguna Tidak Ditakrifkan”. Bersama-sama dengannya, anda akan menemui baris kedua kod yang diserlahkan dengan warna biru, tempat saya menulis “strng” sebagai ganti “rentetan” .
Saya harap anda faham maksudnya. VBA tidak dapat mengecam jenis pembolehubah “strng” , itulah sebabnya ia menganggapnya sebagai jenis pembolehubah baharu dan menganggap anda telah menentukannya di suatu tempat. Tetapi apabila iamendapati anda tidak mengisytiharkannya di mana-mana, ia menimbulkan ralat.
Oleh itu, semasa menjalankan kod VBA mudah, jika anda menghadapi ralat ini bagaimanapun, semak semua ejaan jenis pembolehubah anda dahulu.
2. Kekurangan Rujukan yang Betul
Ini adalah satu lagi punca di sebalik ralat ini. Itu adalah kekurangan rujukan yang betul. Kadangkala kami menggunakan beberapa objek dalam kod kami yang memerlukan rujukan yang betul daripada kotak Rujukan Asas Visual . Jika tidak, VBA tidak mengecam objek.
Lihat pada kod VBA berikut.
2686
Jalankan kod ini. Anda akan mendapat ralat lama yang sama “Jenis Ditentukan Pengguna tidak Ditakrifkan”, menyerlahkan objek Kamus . Ini kerana VBA tidak dapat mengecam objek Kamus dan menganggapnya sebagai pembolehubah yang ditentukan pengguna, yang tidak ditakrifkan secara salah.
Kini persoalan terbesar ialah, bagaimana untuk menyelesaikan ralat ini? Mudah. Terdapat 2 cara untuk menyelesaikan ralat ini.
⧪ Penyelesaian 1: Menyemak Rujukan Prasyarat daripada Kotak Rujukan Kotak Visual
Ini ialah cara paling bijak untuk menyelesaikan masalah ini. Pergi ke Alat > Butang Rujukan dalam reben Visual Basic . Klik pada Rujukan .
Kotak dialog yang dipanggil Rujukan akan dibuka. Tatal dan cari Microsoft Scripting Runtime (Ini bergantung pada objek yang anda gunakan. Kamusobject memerlukan Microsoft Scripting Runtime untuk dikenali. Jadi, semasa menggunakan objek dalam kod VBA , anda mesti mengetahui prasyaratnya untuk diiktiraf oleh VBA. Lawati pautan ini untuk mendapatkan maklumat lanjut.). Semak ia.
Sekarang kembali dan jalankan kod. Anda tidak akan mendapat sebarang ralat. Kerana VBA boleh mengecam objek Kamus kali ini.
⧪ Penyelesaian 2: Mengisytiharkannya sebagai Objek Tulen dan bukannya Objek Khusus
Terdapat cara lain untuk menyelesaikan masalah ini. Anda boleh mengisytiharkan objek sebagai objek tulen, bukannya Objek kamus .
Perhatikan baris kod berikut.
3723
Di sini saya telah mengisytiharkan pembolehubah MyDictionary sebagai objek ringkas, bukan Kamus. Sekarang jika anda menjalankan kod ini, anda tidak akan mendapat sebarang ralat.