VBA Nesnesi Gerekli - Excel VBA'da Nesne Gerekli Hata Nasıl Onarılır?

Excel VBA'da Gerekli Nesne

Hatalar, kodlama dilinin bir parçasıdır, ancak gerçek deha, hatayı bulmak ve bu hataları düzeltmektir. Bu hataları düzeltmenin ilk adımı, bu hataların neden oluştuğunu bulmanın zekasıdır. Bu hataların neden geldiğini bulabilirseniz, bu hataları terletmeden düzeltmek çok kolay bir iştir. VBA kodlamasında böyle bir hata "Gerekli Nesne" dir.

Hatırlarsanız, değişkenleri öğrenirken ve bu değişkenlere veri türleri atarken, "Nesne" veri türlerimiz de var. Nesne veri türü atandığında ve söz konusu nesne çalışma sayfasında veya çalışma kitabında yoksa, gitmekten bahsettiğimiz VBA hata mesajını "Nesne Gerekli" olarak alırız . Bu nedenle, yeni bir kodlayıcı olarak, bu durumlarda paniğe yol açmak yaygındır çünkü başlangıç ​​seviyesinde, bir acemi bu hatanın nedenini bulamaz.

Neden Nesne Gerekli Hatası Oluşur? (ve… Nasıl Düzeltilir?)

Tamam, bu hatanın neden oluştuğunu ve nasıl düzeltileceğini gerçekten anlamak için iki veya üç örnek gerekiyor.

Örneğin, aşağıdaki koda bakın.

Kod:

Alt Last_Row () Dim Wb As Workbook As Çalışma Sayfası Olarak Dim Ws Dim MyToday As Date Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub

Size yukarıdaki kodu açıklayayım.

Üç değişken tanımladım ve ilk iki değişken "Çalışma Kitabı" ve "Çalışma Sayfası" nesnelerine atıfta bulunuyor. Üçüncü değişken, "Tarih" veri türünü ifade eder.

Değişkene "Object" veri türleri atandığında, nesnenin referansını değişkene atamak için "Set" kelimesini kullanmamız gerekir, bu nedenle sonraki iki satırda "Set" anahtar kelimesini kullanarak I "Bu Çalışma Kitabı" referansını "Wb" değişkenine atadım çünkü bu değişken nesne veri türünü "Çalışma Kitabı" olarak tutuyor ve "Ws" değişkeni için bu çalışma kitabındaki "Veri" çalışma sayfasının çalışma sayfası nesnesini atadım.

Wb'yi Ayarla = ThisWorkbook
Ws = ThisWorkbook.Worksheets ("Data") olarak ayarlayın
  • "Tarih" veri türü değişkeninin bir sonraki satırında, bu çalışma kitabındaki (Wb) ve "Veri" (Ws) çalışma sayfasındaki A1 hücresinin değerini atamak için "Ayarla" anahtar sözcüğünü kullandım.
MyToday = Wb.Ws.Cells (1, 1) olarak ayarlayın
  • Bir sonraki satırda, VBA'daki mesaj kutusunda A1 hücresinin değerinin "MyDate" değişken değerinin değerini gösteriyoruz.
MsgBox MyToday
  • Tamam, bu kodu çalıştıralım ve sonuç olarak ne elde ettiğimize bakalım.

Yukarıda görebileceğiniz gibi, VBA hata mesajını "Gerekli Nesne" olarak gösterir . Tamam, bu hata mesajını neden aldığımızı inceleme zamanı.

  • Kod bölümünde yer alan yukarıdaki hata mesajı görselinde hata mesajı gösterilirken kodun hata kısmı mavi renk ile vurgulanmıştır.
  • Öyleyse, soru hala bu hatayı neden aldığımızdır. Görmemiz gereken ilk şey, bu belirli değişken veri türü. Veri türünü "MyDate" değişkenine atadığımız önceki kod satırına geri dönün.
  • Değişken veri türünü "Tarih" olarak atadık ve şimdi hata satırına geri döndük.

Bu satırda "Set" anahtar kelimesini kullandık, oysa veri tipimiz "Object" veri türü değil. Dolayısıyla, VBA kodu "Set" anahtar sözcüğünü gördüğü anda, bunun bir nesne veri türü olduğunu varsayar ve bir nesne başvurusu gerektirdiğini söyler.

Bu nedenle, alt satırda "Ayarla" anahtar kelimesi yalnızca Çalışma Sayfası, Çalışma Kitabı vb. Nesne değişkenlerine başvurmak için kullanılır.

Örnek 1

Şimdi aşağıdaki koda bir göz atın.

Kod:

Sub Object_Required_Error () Aralık ("A101"). Değer = Uygulama1.WorksheetFunction.Sum (Aralık ("A1: A100")) Son Alt

Yukarıdaki kodda, A1'den A100'e kadar olan hücre değerlerinin toplamını elde etmek için çalışma sayfası işlevi "TOPLA" işlevini kullandık. Bu kodu çalıştırdığınızda aşağıdaki hatayla karşılaşacağız.

Oops !! "Çalışma zamanı hatası '424': Gerekli Nesne.

Şimdi koda yakından bakalım.

"Uygulama" yerine yanlışlıkla "Uygulama1" kullandık, bu nedenle bu VBA kodunda "Gerekli Nesne" hatasıyla karşılaştı.

"Seçenek Açık" kelimesi etkinleştirilirse, "Değişken Tanımlanmamış" hatası alacağız.

Hatırlanacak şeyler

  • Gerekli Nesne, nesne veri türü referansının doğru olması gerektiği anlamına gelir.
  • Kodlamada açık sözcük seçeneği etkinleştirilmediğinde, yanlış yazılmış değişken sözcükler için Nesne Gerekli hatası alacağız ve Seçenek Açık etkinleştirilmişse, yanlış yazılmış değişken sözcükler için değişken tanımlanmamış hatası alacağız.

Ilginç makaleler...