Type mismatch Error atau kita juga bisa menyebutnya sebagai kode Error 13 itu terjadi ketika kita menetapkan nilai ke variabel yang bukan dari tipe datanya, misalnya jika kita memberikan nilai desimal atau panjang ke variabel tipe data integer kita akan menemukan kesalahan Ketidakcocokan Jenis ini ketika kami menjalankan kode yang ditampilkan sebagai Kode Kesalahan 13.
Apa itu Kesalahan Ketidakcocokan Jenis VBA?
VBA Type Mismatch Error di excel adalah jenis "Run Time Error," dan ini adalah kesalahan nomor 13 dalam kategori ini.
Untuk memulai pembelajaran di VBA dan untuk pemula, sulit untuk menemukan kesalahan yang dilemparkan oleh kode VBA. Ingat, VBA tidak membuat kesalahan. Sebaliknya, ini hanya menyoroti kesalahan kita saat menulis kode.
Kami biasanya mendeklarasikan variabel, dan kami menetapkan tipe data ke dalamnya. Saat kita memberikan nilai ke variabel tersebut, kita perlu mengingat jenis data apa yang dapat disimpannya. Jika nilai yang diberikan tidak sesuai dengan tipe data, kita akan mendapatkan “Run Time Error 13: Type Mismatch”.

Bagaimana cara Memperbaiki Kesalahan Run-time Jenis VBA 13?
Mari kita lihat beberapa contoh untuk memahami Kesalahan Ketidakcocokan Jenis VBA ini.
Jenis VBA Tidak Cocok - Contoh # 1
Misalnya, lihat kode VBA di bawah ini.
Kode:
Sub Type_MisMatch_Example1 () Dim k As Byte k = "Hiii" MsgBox k End Sub

Saya telah mendeklarasikan variabel "k" sebagai Byte.
Ini berarti variabel "k" dapat menyimpan nilai dari 0 hingga 255. Namun di baris berikutnya, saya telah menetapkan nilai untuk variabel "k" sebagai "Hiii".
Sangat jelas bahwa tipe data tidak dapat menampung nilai teks, jadi inilah Type Mismatch Error.

Jenis VBA Tidak Cocok - Contoh # 2
Sekarang lihat satu contoh lagi dengan tipe data yang berbeda. Lihat kode di bawah ini.
Kode:
Sub Type_MisMatch_Example2 () Dim x As Boolean x = 4556 MsgBox x End Sub

Kami telah mendeklarasikan variabel "x" sebagai Boolean.
Boolean adalah tipe data yang dapat menampung nilai TRUE atau FALSE.
Dalam kode di atas, kami telah menetapkan nilai 4556, yang tidak sesuai dengan nilai tipe data TRUE atau FALSE.
Ketika kami menjalankan kode ini, Anda akan mengharapkan kesalahan tipe tidak cocok, tetapi lihat apa yang terjadi ketika kami menjalankan kode ini.

Anda pasti bertanya-tanya mengapa ini tidak memberikan run time error 13 dari type mismatch error.
Alasan untuk ini adalah excel memperlakukan semua angka sebagai BENAR kecuali nol. Nilai nol akan dianggap SALAH. Jadi itulah mengapa kami mendapatkan hasil sebagai BENAR dan bukan kesalahan.
Sekarang lihat, saya akan memberikan nilai numerik dengan teks.
Kode:
Sub Type_MisMatch_Example2 () Dim x As Boolean x = "4556a" MsgBox x End Sub

Ini pasti akan membuang Run Time Error 13: Type Mismatch.

Jenis VBA Tidak Cocok - Contoh # 3
Sekarang, lihat kode di bawah ini untuk contoh ini.
Kode:
Sub Type_MisMatch_Example4 () Dim x As Integer Dim y As String x = 45 y = "2019 Jan" MsgBox x + y End Sub

Variabel “x” adalah tipe data integer, dan “y” adalah tipe data string.
X = 45 dan y = 2019 Jan.
Di kotak pesan, saya telah menambahkan x + y.
Tetapi ini bukan kode yang sempurna karena kita tidak dapat menambahkan angka dengan teks string. Kami akan menemukan Run Time Error 13.

Jenis VBA Tidak Cocok - Contoh # 4
Kasus Luar Biasa
Ada situasi di mana excel memaafkan data yang salah ditugaskan ke tipe data variabel. Misalnya, lihat kode di bawah ini.
Kode:
Sub Type_MisMatch_Example3 () Dim x Selama Dim y Selama x = 58.85 y = "85" MsgBox x & vbNewLine & y End Sub

Dua variabel yang dideklarasikan adalah "x" & "y".
Untuk variabel ini, jenis data yang ditetapkan adalah "Panjang".
Tipe data panjang hanya menerima bilangan bulat, bukan nilai desimal.
Jadi persepsi umum adalah untuk mendapatkan run time error 13 jenis mismatch error.
Tapi mari kita lihat apa yang terjadi saat kita menjalankan kode ini.

Wow!!! Kami mendapat nilai 59 & 85.
Ini karena VBA akan mengonversi nilai desimal 58,85 menjadi nilai bilangan bulat terdekat, dan meskipun angka diapit tanda kutip ganda, VBA tetap mengonversi ke nilai bilangan bulat saja.