Özel sınıfımın bir örneği olan global bir değişkenim var.
Nesnenin ayarlanıp ayarlanmadığını veya onu başlatmam gerekip gerekmediğini nasıl kontrol ederim?
Özel sınıfımın bir örneği olan global bir değişkenim var.
Nesnenin ayarlanıp ayarlanmadığını veya onu başlatmam gerekip gerekmediğini nasıl kontrol ederim?
Yanıtlar:
If obj Is Nothing Then
' need to initialize obj: '
Set obj = ...
Else
' obj already set / initialized. '
End If
Veya tam tersini tercih ederseniz:
If Not obj Is Nothing Then
' obj already set / initialized. '
Else
' need to initialize obj: '
Set obj = ...
End If
obj Is Nothing
etmenin kontrol etmekle aynı şey OLMADIĞINI unutmayın IsNothing(obj)
! Bunu kontrol etmek için doğru sözdizimi için teşekkürler ... neden IsNothing()
farklı davrandığından emin değilim ...
Not (obj Is Nothing)
daha kolay buluyorum Not obj Is Nothing
. Beynim "obj değil" nin ne olduğunu bilmiyor!
Bunu yapmanın (un) güvenli yolu - seçeneği açıkça kullanmamakta sorun yoksa - ...
Not TypeName(myObj) = "Empty"
Bu aynı zamanda nesne bildirilmemişse durumu da ele alır. Bazı davranışları kapatmak için bir bildirimi yorumlamak istiyorsanız, bu yararlıdır ...
Dim myObj as Object
Not TypeName(myObj) = "Empty" '/ true, the object exists - TypeName is Object
'Dim myObj as Object
Not TypeName(myObj) = "Empty" '/ false, the object has not been declared
Bu işe yarar çünkü VBA, bildirilmemiş bir değişkeni Boş Değişken türü olarak otomatik olarak başlatır. Davranışı yönetmek için yardımcı bir Boolean gereksinimini ortadan kaldırır.
Option Explicit
. Sorunlar dışında hiçbir şey kazanmaz. Davranışı "değiştirmek" için Koşullu Derlemeyi kullanın.