2012-06-28 9 views
12

ऑपरेटर या फ़ंक्शन का परीक्षण करने के लिए क्या होता है कि एक ही कस्टम ऑब्जेक्ट प्रकार के दो चर समान ऑब्जेक्ट को संदर्भित करते हैं? मैंने कोशिश की हैवीबीए: वस्तु समानता के लिए परीक्षण कैसे करें (चाहे दो चर एक ही वस्तु का संदर्भ लें)

If myObject = yourObject Then 

लेकिन रनटाइम त्रुटि प्राप्त करें 438 ऑब्जेक्ट इस संपत्ति या विधि का समर्थन नहीं करता है। मैं अनुमान लगा रहा हूं कि मुझे '=' ऑपरेटर को जांचने के लिए कह रहा है कि क्या दो वस्तुओं के सभी फ़ील्ड समान मान हैं। लेकिन मैं यह जांचना चाहता हूं कि वे एक ही वस्तु हैं या नहीं।

उत्तर

26

मुझे लगता है कि मुझे यह कहने के लिए '=' ऑपरेटर को ओवरराइड करने के लिए कह रहा है कि दोनों वस्तुओं के सभी फ़ील्ड समान मान हैं।

नहीं, यह आपको बताता है कि वस्तुओं में एक डिफ़ॉल्ट संपत्ति नहीं है जिसे अन्यथा कहा जाता है, और लौटाए गए परिणामों की तुलना की जाती है।

आप के साथ Is

If myObject Is yourObject Then 
+0

धन्यवाद GSerg परीक्षण संदर्भ समानता, मैं – Swiftslide

+0

@GSerg वास्तव में क्या जरूरत है: यह दो सीमा वस्तुओं के लिए काम करने के लिए प्रतीत नहीं होता। उदाहरण के लिए, आर 1 = रेंज ("ए 1") सेट करें और आर 2 = रेंज ("ए 1") सेट करें, फिर डीबग.प्रिंट आर 1 आर 2 रिटर्न रिटर्न है। –

+7

@ एक्सेलसेल डेवलपर्स 'इज़' रेफरेंसियल समानता का परीक्षण करता है, उच्च स्तर के तर्क के अनुसार समानता नहीं। दो 'रेंज' ऑब्जेक्ट्स अलग-अलग उदाहरण हैं, इस प्रकार 'Is' सही रूप से झूठा रिटर्न देता है। तथ्य यह है कि वे एक ही सीमा को संदर्भित करते हैं, प्रासंगिक नहीं है - 'है' इस अतिरिक्त तार्किक कनेक्शन के बारे में नहीं जानता और नहीं जानता, केवल 'रेंज' के लिए विशिष्ट है। यदि आप जांचना चाहते हैं कि दो रेंज का एक ही शीट रेंज का संदर्भ है, तो आपको या तो अपने 'पता' की तुलना करने की आवश्यकता है या देखें कि 'आवेदन। इंटरसेक्ट (आर 1, आर 2)' दोनों के समान आकार की सीमा देता है 'आर 1' और' आर 2'। – GSerg

संबंधित मुद्दे