VBA ऑब्जेक्ट आवश्यक - एक्सेल VBA में आवश्यक वस्तु को कैसे ठीक करें?

एक्सेल VBA में आवश्यक वस्तु

गलतियाँ कोडिंग भाषा का हिस्सा और पार्सल हैं, लेकिन असली प्रतिभा त्रुटि खोजने और उन त्रुटियों को ठीक करने में निहित है। उन त्रुटियों को ठीक करने का पहला चरण यह खोजने की बुद्धिमत्ता है कि त्रुटियां क्यों हो रही हैं। यदि आप पा सकते हैं कि उन त्रुटियां क्यों आ रही हैं, तो उन त्रुटियों को ठीक करने के लिए एक बहुत आसान काम है, जो एक पसीने को बिना तोड़ दिए। VBA कोडिंग में एक ऐसी त्रुटि "आवश्यक वस्तु है।"

यदि आपको याद है, तो चर सीखना और उन प्रकारों के लिए डेटा प्रकार निर्दिष्ट करना, हमारे पास "ऑब्जेक्ट" डेटा प्रकार भी हैं। जब ऑब्जेक्ट डेटा प्रकार असाइन किया जाता है, और यदि वह ऑब्जेक्ट उस वर्कशीट या वर्कबुक में मौजूद नहीं है, जिसे हम जाने की बात कर रहे हैं, तो हमें "ऑब्जेक्ट आवश्यक" के रूप में VBA त्रुटि संदेश मिलेगा इसलिए, एक नए कोडर के रूप में, उन स्थितियों में घबराहट करना आम है क्योंकि शुरुआती स्तर पर, एक शुरुआतकर्ता इस त्रुटि का कारण नहीं ढूंढ सकता है।

क्यों आवश्यक त्रुटि होती है? (और … इसे कैसे ठीक करें?)

ठीक है, यह समझने में दो या तीन उदाहरण लगते हैं कि यह त्रुटि क्यों होती है और इसे कैसे ठीक किया जाए।

उदाहरण के लिए, नीचे दिए गए कोड को देखें।

कोड:

उप Last_Row () कार्यपुस्तिका के रूप में डिम डब्ल्यूबी, कार्यपत्रक के रूप में डिम डब्ल्यूएस, दिनांक सेट के रूप में डिम माइटोडे के रूप में। यह वॉकबुक सेट डब्ल्यूएस = ThisWorkbook.Worksheets ("डेटा") सेट MyTodel = Wb.Ws.Cells (1, 1) MsgBox MyToday समाप्ति उप सबमिशन।

मुझे आप के लिए उपरोक्त कोड की व्याख्या करते हैं।

मैंने तीन चर घोषित किए हैं, और पहले दो चर "वर्कबुक" और "वर्कशीट" वस्तुओं को संदर्भित करते हैं। तीसरा चर "दिनांक" डेटा प्रकार को संदर्भित करता है।

जब "ऑब्जेक्ट" डेटा प्रकार को वेरिएबल को सौंपा जाता है, तो हमें "सेट" कीवर्ड का उपयोग करके, चर के ऑब्जेक्ट के संदर्भ को असाइन करने के लिए "सेट" कुंजी का उपयोग करना होगा, इसलिए "सेट" कीवर्ड, I "ThisWorkbook" का संदर्भ चर "Wb" को सौंपा है क्योंकि यह चर वस्तु डेटा प्रकार को "कार्यपुस्तिका" के रूप में रखता है और चर "Ws" के लिए मैंने इस कार्यपुस्तिका में "Data" कार्यपत्रक की कार्यपत्रक ऑब्जेक्ट को असाइन किया है।

Wb = ThisWorkbook सेट करें
सेट Ws = ThisWorkbook.Worksheets ("डेटा")
  • "दिनांक" डेटा प्रकार चर के लिए अगली पंक्ति में भी मैंने इस कार्यपुस्तिका (Wb) और कार्यपत्रक "डेटा" (Ws) में सेल A1 मान के मान के लिए "सेट" कीवर्ड का उपयोग किया है।
MyToday = Wb.Ws.Cells (1, 1) सेट करें
  • अगली पंक्ति में, हम VBA में संदेश बॉक्स में सेल A1 मान के "MyDate" चर मान का मान दिखा रहे हैं।
MsgBox MyToday
  • ठीक है, चलो इस कोड को चलाते हैं और देखते हैं कि हमें क्या परिणाम मिलता है।

जैसा कि आप ऊपर देख सकते हैं, यह "आवश्यक वस्तु" के रूप में VBA त्रुटि संदेश दिखाता है ठीक है, इसकी जांच करने का समय कि हमें यह त्रुटि संदेश क्यों मिल रहा है।

  • कोड अनुभाग में उपरोक्त त्रुटि संदेश छवि में, त्रुटि संदेश दिखाते समय, इसने नीले रंग के साथ कोड के त्रुटि भाग को उजागर किया है।
  • इसलिए, सवाल यह है कि हमें यह त्रुटि क्यों मिली। पहली चीज जो हमें देखने की जरूरत है वह है विशेष रूप से परिवर्तनीय डेटा प्रकार। कोड की पिछली पंक्ति पर वापस जाएं जहां हमने डेटा प्रकार को चर "MyDate" पर सौंपा है।
  • हमने चर डेटा प्रकार को "दिनांक" के रूप में सौंपा है और अब त्रुटि पंक्ति में वापस आते हैं।

इस पंक्ति में, हमने "सेट" कीवर्ड का उपयोग किया है, जबकि हमारा डेटा प्रकार "ऑब्जेक्ट" डेटा प्रकार नहीं है। इसलिए जब VBA कोड कीवर्ड "सेट" देखता है, तो यह मान लेता है कि यह एक ऑब्जेक्ट डेटा प्रकार है और कहता है कि इसे ऑब्जेक्ट संदर्भ की आवश्यकता है।

तो, निचली पंक्ति "सेट" कीवर्ड का उपयोग केवल ऑब्जेक्ट चर जैसे कि वर्कशीट, वर्कबुक, आदि को संदर्भित करने के लिए किया जाता है …

उदाहरण 1

अब नीचे दिए गए कोड पर एक नज़र डालें।

कोड:

उप Object_Required_Error () रेंज ("A101")। मान = Application1.WorksheetFunction.Sum (रेंज ("A1: A100")) अंतिम उप

उपरोक्त कोड में, हमने A1 से A100 तक कुल सेल मान प्राप्त करने के लिए वर्कशीट फ़ंक्शन "SUM" का उपयोग किया है। जब आप यह कोड चलाते हैं, तो हम नीचे दी गई त्रुटि का सामना करेंगे।

उफ़ !! यह कहता है, "रन-टाइम त्रुटि '424': ऑब्जेक्ट की आवश्यकता।

अब कोड को करीब से देखते हैं।

"एप्लिकेशन" का उपयोग करने के बजाय, हमने गलती से "Application1" का उपयोग किया है, इसलिए इससे VBA कोड में "ऑब्जेक्ट आवश्यक" की त्रुटि का सामना करना पड़ा।

यदि शब्द "विकल्प स्पष्ट" सक्षम है, तो हमें "परिवर्तनीय नहीं परिभाषित" त्रुटि मिलेगी।

याद रखने वाली चीज़ें

  • ऑब्जेक्ट आवश्यक मतलब ऑब्जेक्ट डेटा प्रकार संदर्भ को सटीक होना चाहिए।
  • जब कोडिंग में विकल्प स्पष्ट शब्द सक्षम नहीं होता है, तो हमें गलत वर्तनी वाले चर शब्दों के लिए ऑब्जेक्ट आवश्यक त्रुटि मिलेगी, और यदि विकल्प स्पष्ट सक्षम है, तो हम गलत वर्तनी वाले चर शब्दों के लिए चर नहीं परिभाषित त्रुटि प्राप्त करेंगे।

दिलचस्प लेख...