Vba hatası 13 nasıl düzeltilir?
Veri türüyle eşleşmeyen bir değişkene değer belirtmeye çalıştığınızda tür uyuşmazlığı (hata 13) oluşur. VBA’da bir değişken bildirdiğinizde onun veri türünü ayarlamanız gerekir ve bu veri türü dışında bir değer belirttiğinizde uyumsuzluk hata türü 13’ü alırsınız.
Bu derste, bir kod çalıştırılırken çalışma zamanı hatası 13’ün oluşabileceği olası durumların neler olduğunu göreceğiz.
Tarih türü uyuşmazlığı hatası
VBA’da tarihleri işlemek için belirli bir veri türü vardır ve bazen bu, bir tarihi depolamak için bir değişken kullandığınızda ve belirttiğiniz değer farklı olduğunda meydana gelir.
Aşağıdaki kodda tarih olarak bir değişken bildirdim ve ardından yalnızca tarihin olması gereken A1 hücresinin değerini belirttim. Ancak gördüğünüz gibi 1. hücredeki tarih doğru formatta değil, VBA bunu tarih olarak tanımlayamıyor.
Sub myMacro() Dim iVal As Date iVal = Range("A1").Value End Sub
Numarayla tür uyuşmazlığı hatası
Bir değişkene bir sayı belirtmeye çalıştığınızda farklı bir değer aldığınız sayılarla uğraşırken aynı hatayı alacaksınız.
Aşağıdaki örnekte A1 hücresinde sayısal bir değer olması gereken bir hata var. Dolayısıyla, kodu çalıştırdığınızda VBA size çalışma zamanı hatası 13’ü gösterir çünkü değeri sayı olarak tanımlayamaz.
Sub myMacro() Dim iNum As Long iNum = Range("A6").Value End Sub
Çalışma zamanı hatası 6 Taşma
VBA’da sayılarla ilgilenmek için çeşitli veri türleri vardır ve bu veri türlerinin her biri, kendisine atayabileceğiniz bir sayı aralığına sahiptir. Ancak veri türü aralığının dışında bir sayı belirttiğinizde bir sorun oluşur.
Bu durumda, veri türünü değiştirmeniz gerektiğini ve belirttiğiniz sayının aralık dışında olduğunu belirten çalışma zamanı hatası 6 taşmasını göstereceğiz.
Bunun olabileceği diğer durumlar
Çalışma zamanı hatası 14: Tür Uyuşmazlığıyla karşılaşabileceğiniz başka durumlar da olabilir.
- Bir tabloya aralık atadığınızda ancak bu aralık yalnızca bir hücreden oluştuğunda.
- Bir değişkeni nesne olarak tanımladığınızda, ancak kodu yazarken o değişkenden farklı bir nesneyi belirtmiş olursunuz.
- Bir değişkeni çalışma sayfası olarak belirttiğinizde ancak kodda sayfalar koleksiyonunu kullandığınızda veya bunun tersi.
Tür Uyuşmazlığı Nasıl Düzeltilir (Hata 13)
Bu hatayla başa çıkmanın en iyi yolu, belirli bir kod satırını yürütmek için talimatlara erişmek veya hata oluştuğunda kullanıcıya bir mesaj kutusu görüntülemek için kullanmaktır. Ancak çalıştırmadan önce araziyi adım adım da kontrol edebilirsiniz. Bunun için VBA hata ayıklama aracını kullanmanız gerekir veya F8 kısayol tuşunu da kullanabilirsiniz.