Eğitim Object Required Hatası ve Option Explicit

Alparslan

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Mar 2021
Mesajlar
284
Çözümler
87
Aldığı beğeni
372
Excel Versiyonu
Office 2021 TR
Konuyu Başlatan
Merhaba, aşağıdaki konu çözülmüş ancak Object Required hatası neden çıkar kısaca bahsedelim.

Object Required hatası, kodlar içerisinde kullanılan nesne tanımlamalarında ki eksikliklerde çıkar.

İlgili bağlantıda yer alan dosyadaki kodları incelediğimizde örnek olarak UserForm_Initialize bölümünde x = SayVer.Cells(Rows.Count, 1).End(3).Row satırı mevcut.
SayVer isimli değişken çalışma kitabında yer alan bir sayfa olarak kullanılmış ancak bu SATIR öncesinde ya da genel olarak sayfalar için bir tanımlama yapılmamış.

Kodu çalıştırdığımızda x değişkenine SayVer isimli sayfanın A sütununun son dolu SATIR numarası gelmesi gerekir. Ancak tanımlama yapılmadığı için Object required hatası ile kodun çalışması sonlanıyor.

On Error Resume Next satırını kullanırsak kod hatayı yok sayar ve işleme devam eder, ancak nasıl bir sonuç olur bunu hem tanımlama yaparak hem de sadece On Error Resume Next satırını kullanarak karşılaştıralım.

SayVer sayfası için tanımlama örneği,

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
bu kodları x = SayVer.Cells(Rows.Count, 1).End(3).Row satırının üzerine ekleyelim ve ilgili UserForm'da F8 ile kodları adım adım çalıştıralım.
1693227869890.png
Resimde görüldüğü üzere, yapılan tanımlama sonucu SayVer isimli değişken Excel tarafından Çalışma Sayfası olarak algılandı ve x değişkenine ilgili sayfanın son dolu SATIR numarası olan 24 sonucunu atadı.

Şimdi sadece On Error Resume Next satırı ile çalıştıralım.
1693228098916.png

On Error Resume Next satırı hatayı kapattığı için kod çalışmaya devam etti ancak SayVer ve x değişkenleri görüldüğü gibi tanımsız kaldı.

Değişken hatalarına karşı ne yapılabilir?
Kodlamaya başlamadan önce ilk satıra Option Explicit satırı eklenebilir ya da Toos \ Options penceresinden resimde işaretli olan seçenek aktif edilebilir. Bu seçenekte Option Explicit satırını ekler.
1693228932597.png
Option Explicit satırının görevi tanımlama yapılmamış olan değişken isimleri için uyarı verir.
Böylece kullandığınız değişkenler için tanımlama yapmak zorurunlulu olur.

Örnek olarak;
x 'e 4 değerini atama yapmak istiyoruz ve kullandığımız kodlar.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
x için herhangi bir tanımlama yapmadan kodu çalıştırmak istediğimizde, Excel x 'i işaretleyerek Variable not defined hatası ile çalışmayı durdurur.
Bu hata ile Excel diyor ki "Değişken Tanımlamadınız".
1693229331126.png

Dim x As Byte satırı ile tanımlama yaparak yeniden çalıştıralım.
Bu tanımlama ile Excel'e x 0 ile 255 arasında değer alabilir dedik. ( 0 ve 255 dahil )

Tanımlama sonucu kod hata vermeden istenilen değeri x 'e atamış oldu.
1693229704184.png

"Değişken tanımlamalarını unutmam" diyorsanız Option Explicit satırını kullanmayabilirsiniz. :)
İyi çalışmalar.
 

Konuyu okuyanlar

Üst