كيف أعرف ما إذا كان الكائن مشار إليه بالفعل؟
-
06-07-2019 - |
سؤال
في بعض VBA المرتبطة بجدول بيانات Excel 2003 ، أحتاج إلى الاستفادة من بعض الكائنات التي تستغرق بعض الوقت حتى التنشئة - لذلك أريد فقط أن أفعل الشيء "Set" مرة واحدة ...
من الأسهل عرض الكود بدلاً من كتابة تفسير!
' Declare the expensive object as global to this sheet
Dim myObj As SomeBigExpensiveObject
Private Sub CommandButtonDoIt_Click()
' Make sure we've got a ref to the object
If IsEmpty(myObj) Then ' this doesn't work!
Set myObj = New SomeBigExpensiveObject
End If
' ... etc
End Sub
كيف يمكنني التحقق مما إذا كان myobj قد تم تعيينه بالفعل؟
لقد جربت isnull (myobj) و isempty (myobj) - كلاهما تخطي "المجموعة" ، بغض النظر عن حالة myobj. لا أستطيع أن أفعل
if myObj = Nil then
أو
if myObj = Empty then
أو
if myObj = Nothing then
أيه أفكار؟
سال
المحلول
هذا يجب أن يعمل:
If myObj IS Nothing Then
(لاحظ أن "IS") إذا لم ينجح ذلك ، فيجب أن يكون هناك تجويف غير متزامن يتم تنفيذه على وجه التحديد بواسطة تلك الفئة لأن مكالمات init com متزامنة بشكل افتراضي. لذلك ، تحتاج إلى التحقق من المستند لـ DOC ، أو التحدث إلى المطور حول ، الفئة الكبيرة لبعض الممتلكات أو طريقة التزامن لكي تنتظرها.
لا تنتمي إلى StackOverflow