Daftar Isi
Salah satu kesalahan paling umum yang kami hadapi saat bekerja dengan VBA di Excel adalah bahwa tipe yang ditentukan pengguna tidak ditentukan. Pada artikel ini, saya akan menunjukkan kepada Anda mengapa kesalahan ini disebabkan dan bagaimana mengatasi kesalahan ini.
Unduh Buku Kerja Praktik
Unduh buku kerja latihan ini untuk latihan saat Anda membaca artikel ini.
Tipe yang Ditentukan Pengguna Tidak Ditentukan.xlsm2 Penyebab dan Solusi untuk Tipe yang Ditentukan Pengguna Tidak Ditentukan di Excel VBA
Ada 2 masalah utama di balik kesalahan yang sering ditemui di Excel ini VBA Mari kita jelajahi secara rinci dan mencari tahu cara-cara untuk menyelesaikannya.
1. Kesalahan Ejaan Saat Mendeklarasikan Variabel
Ini adalah alasan utama di balik kesalahan ini. Sering kali, kesalahan "Tipe yang Ditentukan Pengguna tidak Ditetapkan" disebabkan karena kesalahan ejaan saat mendeklarasikan variabel.
Lihatlah baris-baris kode berikut ini.
Sub User_Defined_Type_not_Defined() Dim Name As Strng Name = "ExcelWIKI" MsgBox Name End Sub
Jika Anda menjalankan kode ini, Anda akan mendapatkan kotak kesalahan yang memberitahukan adanya kesalahan tersebut "Tipe yang Ditentukan Pengguna Tidak Ditetapkan". Bersamaan dengan itu, Anda akan menemukan baris kedua kode yang disorot dengan warna biru, di mana saya menulis "strng" sebagai pengganti "string" .
Saya harap Anda mengerti maksudnya. VBA tidak bisa mengenali tipe variabel "strng" , itulah sebabnya ia menganggapnya sebagai tipe variabel baru dan mengira Anda telah mendefinisikannya di suatu tempat. Tetapi ketika ia menemukan Anda belum mendeklarasikannya di mana pun, itu menimbulkan kesalahan.
Oleh karena itu, sewaktu menjalankan VBA kode, jika Anda menemukan kesalahan ini, pertama-tama periksa semua ejaan jenis variabel Anda.
2. Kurangnya Referensi yang Tepat
Ini adalah penyebab lain di balik kesalahan ini. Itu adalah kurangnya referensi yang tepat. Kadang-kadang kita menggunakan beberapa objek dalam kode kita yang membutuhkan referensi yang tepat dari Kotak Referensi Visual Basic Jika tidak, VBA tidak mengenali objek.
Lihatlah yang berikut ini VBA kode.
Sub User_Defined_Type_not_Defined() Dim MyDictionary As Dictionary Set MyDictionary = CreateObject("Scripting.Dictionary") End Sub
Jalankan kode ini. Anda akan mendapatkan kesalahan lama yang sama "Tipe yang Ditentukan Pengguna tidak Ditetapkan", menyoroti Objek kamus Ini karena VBA tidak bisa mengenali Objek kamus dan menganggapnya sebagai variabel yang ditentukan pengguna, yang belum didefinisikan secara keliru.
Sekarang pertanyaan terbesarnya adalah, bagaimana mengatasi kesalahan ini? Mudah. Ada 2 cara untuk mengatasi kesalahan ini.
⧪ Solusi 1: Memeriksa Referensi Prasyarat dari Kotak Referensi Kotak Visual
Ini adalah cara paling cerdas untuk memecahkan masalah ini. Alat> Referensi tombol di Visual Basic pita. Klik pada Referensi .
Kotak dialog yang disebut Referensi akan terbuka. Gulir dan temukan Microsoft Scripting Runtime (Ini tergantung pada objek yang Anda gunakan. Objek kamus kebutuhan Microsoft Scripting Runtime untuk dikenali. Jadi, saat menggunakan objek dalam sebuah VBA kode, Anda harus mengetahui prasyaratnya untuk dikenali oleh VBA. Kunjungi tautan ini untuk informasi lebih lanjut). Periksa.
Sekarang kembali dan jalankan kodenya. Anda tidak akan mendapatkan kesalahan apa pun. karena VBA dapat mengenali Objek kamus kali ini.
⧪ Solusi 2: Mendeklarasikannya sebagai Objek Murni dan bukannya Objek Spesifik
Ada cara lain untuk menyelesaikan masalah ini. Anda bisa mendeklarasikan objek sebagai objek murni, bukan sebagai Objek kamus .
Perhatikan baris kode berikut ini.
Sub User_Defined_Type_not_Defined() Dim MyDictionary As Object Set MyDictionary = CreateObject("Scripting.Dictionary") End Sub
Di sini saya telah mendeklarasikan variabel Kamus Saya sebagai objek sederhana, bukan Kamus. Sekarang jika Anda menjalankan kode ini, Anda tidak akan mendapatkan kesalahan apa pun.