Issun को अपनी टिप्पणी के आधार पर:
स्पष्टीकरण के लिए धन्यवाद। मेरे मामले में, वस्तु को घोषित किया गया है और यदि स्थिति से पहले बनाया गया है। तो, < कोई वैरिएबल> की जांच करने के लिए यदि मैं शर्त का उपयोग कैसे करूं? दूसरे शब्दों में, मैं नहीं चाहता कि My_Object.Compute निष्पादित करने के लिए> चाहते हैं My_Object < कोई चर है
आप ऑब्जेक्ट के गुणों में से एक की जांच करने की जरूरत है। हमें बताए बिना वस्तु क्या है, हम आपकी मदद नहीं कर सकते हैं।
मैंने कई सामान्य वस्तुओं का परीक्षण किया और पाया कि बिना किसी आइटम के Collection
घड़ी विंडो में <No Variables>
दिखाता है। अपने वस्तु वास्तव में एक संग्रह है, तो आप .Count
संपत्ति का उपयोग कर <No Variables>
हालत के लिए जाँच कर सकते हैं:
Sub TestObj()
Dim Obj As Object
Set Obj = New Collection
If Obj Is Nothing Then
Debug.Print "Object not instantiated"
Else
If Obj.Count = 0 Then
Debug.Print "<No Variables> (ie, no items added to the collection)"
Else
Debug.Print "Object instantiated and at least one item added"
End If
End If
End Sub
यह भी ध्यान देने योग्य बात है कि अगर आप किसी भी वस्तु As New
घोषित तो Is Nothing
जांच बेकार हो जाता है लायक है। इसका कारण यह है कि जब आप किसी ऑब्जेक्ट को As New
घोषित करते हैं तो इसे स्वचालित रूप से तब बनाया जाता है जब इसे पहली बार बुलाया जाता है, भले ही पहली बार जब आप इसे कॉल करते हैं तो यह देखना है कि यह मौजूद है या नहीं!
Dim MyObject As New Collection
If MyObject Is Nothing Then ' <--- This check always returns False
यह आपकी विशिष्ट समस्या का कारण प्रतीत नहीं होता है। लेकिन, चूंकि अन्य लोग Google खोज के माध्यम से यह प्रश्न पा सकते हैं, इसलिए मैं इसे शामिल करना चाहता था क्योंकि यह एक आम शुरुआत गलती है।
कैसे की जाती है 'My_Object' घोषित? – GSerg
क्या आप "कोई चर नहीं" से क्या मतलब समझ सकते हैं?यदि My_Object कुछ भी नहीं है, तो इसका निश्चित रूप से मतलब है कि यह किसी ऑब्जेक्ट को इंगित नहीं कर रहा है। इसके अलावा, My_Object की टाइप परिभाषा क्या है? –
"मैं My_Object.Compute केवल तभी निष्पादित करना चाहता हूं जब My_Object मौजूद हो।" आपकी इच्छा इस प्रकार दी गई है। (मतलब, क्या कोई परिदृश्य है जहां यह मामला नहीं होगा ?!) –