Nesne Gerekli Hataya Genel Bakış
Bu eğitim, VBA'da Nesne Gerekli Hataları gidermenize yardımcı olacaktır.
<
<
Nesnelere Genel Bakış
VBA'da Nesne, çalışma sayfası, çalışma kitabı, aralık, şekil, satır, sütun, kullanıcı formu, kontrol vb.
Nesnelerin özellikleri (ör: ad, renk, gizli) ve yöntemleri (ör: aç, temizle, kaydet, gizle) vardır. Bir özelliği veya yöntemi uygulamaya çalışırsanız, VBA'nın özellikleri veya yöntemleri uygulayacağı geçerli bir nesneye ihtiyacı vardır.
Geçerli bir Nesne sağlamazsanız, Nesne Gerekli Hatası.
Bu kılavuz, Nesne Gerekli Hataları gidermenize yardımcı olacaktır.
#1. Seçenek Açık / Yanlış Yazılan Değişken Adları
İlk olarak, nesne adını yanlış yazıp yazmadığınızı kontrol edin. Yanlış yazılmış bir ad, Nesne Gerekli Hatasına neden olabilir.
Bu, mevcut nesne adlarında olabilir:
<>
Veya değişken adlarıyla:
<>
Yanlış yazılan değişken adlarını önlemenin iyi bir yolu, kod modülünüzün en üstünde Option Explicit bildirdiğinizden emin olmaktır.
1 | Seçenek Açık |
Açık Seçenek, sizi değişkenlerinizi bildirmeye zorlar. Şimdi <> kodunuzda hata ayıkladığınızda, değişkeninizi tanımlamanız gerektiğini belirten bir mesaj alacaksınız:
<>
Bu, bu değişkenin yanlış yazıldığı konusunda size ipucu vermesine yardımcı olacaktır.
VBA Programlama | Code Generator sizin için çalışıyor!
#2 Değişken Atamalar
Ardından, değişkenlerinizi doğru şekilde atadığınızdan emin olun.
Nesne Değişkenleri, Set Object = kullanılarak atanmalıdır: <>
< Nesne değişken atamaları için Set'i kullanmazsanız, Object Required hatasını alırsınız. <> Benzer şekilde, Nesne Olmayan Değişkenler Set olmadan atanmalıdır: <> Set'i nesne olmayan bir değişkende kullanmayı denerseniz, Object Required hatasını alırsınız. <> Kodunuz çalışma sayfası düzeyinde bir modülde mi? Öyleyse, diğer çalışma sayfalarında adlandırılmış aralıklara atıfta bulunurken çok dikkatli olmanız gerekir. Örneğin, çalışma kitabı düzeyinde "Tarih" adlı bir aralığınız olabilir, normal bir kod modülünde adlandırılmış aralığa şu şekilde başvurabilirsiniz: Ancak, çalışma sayfası düzeyindeki bir modülden adlandırılmış aralığa başvurursanız, adlandırılmış aralığın bulunduğu çalışma sayfasını açıkça tanımlamanız gerekir: Aksi takdirde bir hatayla karşılaşırsınız: <>>
#3 Çalışma Sayfası Düzeyinde Modüller
1 MsgBox Aralığı ("Tarih").değer
1 MsgBox Sheets("Sayfa2").Range("Tarih").değer