विषयसूची
VBA में कॉपी और पेस्ट करने के साथ काम करते समय हमारे सामने आने वाली सबसे आम समस्याओं में से एक है रन टाइम एरर 1004 : रेंज क्लास की पेस्टस्पेशल विधि विफल । इस लेख में, मैं आपको दिखाऊंगा कि इस त्रुटि के पीछे संभावित कारण क्या हैं और उचित उदाहरणों और उदाहरणों के साथ उन्हें कैसे हल किया जाए।
अभ्यास कार्यपुस्तिका डाउनलोड करें
इस लेख को पढ़ते समय व्यायाम करने के लिए इस अभ्यास कार्यपुस्तिका को डाउनलोड करें।
पेस्टस्पेशल मेथड फेल्ड.xlsm
रेंज क्लास की पेस्टस्पेशल मेथड फेल: कारण and Solutions
बिना और देर किए, चलिए अपनी मुख्य चर्चा पर चलते हैं। यानी, इस त्रुटि के पीछे संभावित कारण क्या हो सकते हैं, और उन्हें कैसे हल किया जाए।
कारण 1: किसी भी चीज़ को कॉपी किए बिना पेस्टस्पेशल विधि तक पहुँचना
यह सबसे अधिक है त्रुटि के सामान्य कारण। यानी, बिना कुछ कॉपी किए PasteSpecial मेथड को एक्सेस करने की कोशिश की जा रही है।
इसे स्पष्ट रूप से समझने के लिए, निम्नलिखित VBA कोड की जांच करें।
⧭ VBA कोड:
7036
यहाँ, हमने बिना VBA की PasteSpecial पद्धति का उपयोग किया है कुछ भी कॉपी करना। इसलिए जब आप इसे चलाते हैं तो एक्सेल रन-टाइम त्रुटि 1004 प्रदर्शित करेगा।
⧭ समाधान:
इस समस्या को हल करने के लिए, सबसे पहले, आपको सेल की एक श्रृंखला को कॉपी करना होगा, फिर PasteSpecial विधि का उपयोग करना होगा।
8264
जब आप यह कोड चलाते हैं, यह होगासक्रिय वर्कशीट की रेंज B3:B5 के फॉर्मूले को चयनित रेंज में पेस्ट करें।
और पढ़ें: वर्कशीट क्लास की पेस्टस्पेशल विधि विफल (कारण और समाधान)
कारण 2: स्पेलिंग एरर के साथ पेस्टस्पेशल मेथड एक्सेस करना
यह इसके पीछे एक और सामान्य कारण है गलती। अर्थात, किसी भी तर्क में वर्तनी की त्रुटि(त्रुटियों) के साथ PasteSpecial पद्धति तक पहुँचने के लिए।
इसे स्पष्ट करने के लिए निम्नलिखित VBA कोड को देखें। यहाँ हमने तर्क xlPasteAll में वर्तनी की गलती की है।
⧭ VBA कोड:
7330
जब आप इस कोड को चलाते हैं, तो आपको रन-टाइम त्रुटि 1004 प्राप्त होगी।
⧭ समाधान: <3
समाधान आसान है। मुझे यकीन है कि आप पहले ही अनुमान लगा चुके हैं। बस सुनिश्चित करें कि सभी तर्कों की वर्तनी सही ढंग से बनाई गई है।
और त्रुटि स्वतः गायब हो जाएगी।
और पढ़ें: पेस्ट का उपयोग कैसे करें एक्सेल में स्पेशल कमांड (5 उपयुक्त तरीके)
समान रीडिंग
- एक्सेल VBA: रेंज को दूसरी वर्कबुक में कॉपी करें
- एक्सेल वीबीए के साथ अगली खाली पंक्ति में मूल्यों को कॉपी और पेस्ट करें (3 उदाहरण)
- वीबीए पेस्ट स्पेशल लागू करें और एक्सेल में सोर्स फॉर्मेटिंग रखें
- एक्सेल में एकाधिक कक्षों में समान मान की प्रतिलिपि कैसे करें (4 विधियाँ)
- मानदंड के आधार पर अन्य वर्कशीट में पंक्तियों को कॉपी करने के लिए एक्सेल वीबीए
कारण 3: एक नया खोलनाकॉपी करने के बाद कार्यपुस्तिका जो कॉपी/पेस्ट मोड को रद्द कर देती है
त्रुटि के पीछे यह एक और महत्वपूर्ण कारण है। यानी, ऐसा कुछ करना जो पेस्ट करने से पहले कॉपी/पेस्ट मोड को रद्द कर दे।
स्पष्ट रूप से समझने के लिए निम्नलिखित कोड को देखें।
⧭ VBA कोड:
3021
यहाँ हमने वर्कबुक1 नामक वर्कबुक की शीट1 से बी3:बी5 श्रेणी को कॉपी किया है। 3>
फिर हमने उसी फ़ोल्डर में वर्कबुक2 नामक एक नई वर्कबुक बनाई है और कॉपी की गई रेंज को शीट1<की रेंज B3:B5 में पेस्ट करने की कोशिश की है। 2> उस कार्यपुस्तिका का।
लेकिन जब हम कोड चलाते हैं, तो यह श्रेणी वर्ग की पेस्ट विशेष विधि विफल त्रुटि प्रदर्शित करेगा, क्योंकि जिस क्षण हम नई कार्यपुस्तिका बनाते हैं, कॉपी/पेस्ट मोड रद्द कर दिया जाएगा।
⧭ समाधान:
इस समस्या को हल करने के लिए, पहले लिखें वर्कबुक2 नामक नई कार्यपुस्तिका बनाने के लिए कोड की पंक्तियों के नीचे।
फिर वर्कबुक1 को सक्रिय करने के लिए लाइनें डालें और उसमें से वांछित श्रेणी को कॉपी करें।
और अंत में, वर्कबुक2 को सक्रिय करें और कॉपी की गई रेंज को वहां पेस्ट करें।
3802
इस कोड को रन करें। यह वर्कबुक1 की शीट1 से बी3:बी5 की रेंज कॉपी करेगा।
और पेस्ट करें नई बनाई गई वर्कबुक की शीट1 में जिसे वर्कबुक2 कहा जाता है।
⧭ सावधानी:
जाहिर है, चलाते समय वर्कबुक1 खुला रखना न भूलेंकोड।
और पढ़ें: मैक्रोज़ के बिना एक्सेल में कॉपी और पेस्ट कैसे अक्षम करें (2 मानदंड के साथ)
कारण 4: Application.CutCopyMode को False में बदलना जो कॉपी/पेस्ट मोड को रद्द कर देता है
अंत में, त्रुटि होने का एक और कारण हो सकता है। हम PasteSpecial विधि तक पहुँचने से पहले गलती से Application.CutCopyMode को बंद कर सकते हैं।
हालांकि यह बहुत सामान्य अभ्यास नहीं है, फिर भी कभी-कभी हम इसे तब करते हैं जब लाइनों की एक लंबी संख्या के साथ कार्य करें।
इसे स्पष्ट रूप से समझने के लिए निम्न कोड देखें। यहां हमने B3:B5 श्रेणी को कॉपी किया है, लेकिन पेस्ट करने से पहले CutCopyMode को रद्द कर दिया है।
⧭ VBA कोड:
6152
जब आप कोड चलाएंगे, तो यह रेंज क्लास की पेस्टस्पेशल विधि विफल त्रुटि दिखाएगा।
⧭ समाधान:
मुझे लगता है कि अब तक आप सभी ने समाधान का अनुमान लगा लिया होगा। यह वास्तव में काफी आसान है। बस कोड से उस रेखा को हटा दें जो CutCopy मोड को बंद कर देता है।
तो, सही VBA कोड होगा:
8388
<24
यह श्रेणी B3:B5 को कॉपी करेगा और इसे बिना किसी परेशानी के D3:D5 पर चिपका देगा।
और पढ़ें: एक्सेल में मूल्यों और प्रारूपों को कॉपी करने के लिए VBA पेस्ट स्पेशल (9 उदाहरण)
याद रखने योग्य बातें
यहां मैंने केवल उन समस्याओं को दिखाया है जिनका सामना आप पेस्टस्पेशल विधि VBA में करते समय कर सकते हैं। यदि आप PasteSpecial विधि को विस्तार से जानना चाहते हैं, तो इस लिंक पर जाएं।
निष्कर्ष
तो, संक्षेप में, ये वे कारण हैं जो आपके कोड में रन-टाइम त्रुटि 1004: पेस्टस्पेशियल विधि ओडी रेंज क्लास विफल का कारण बन सकते हैं। मुझे आशा है कि आप सभी बिंदुओं को स्पष्ट रूप से समझ गए होंगे और वे भविष्य में आपकी बहुत मदद करेंगे। क्या आप कोई अन्य कारण जानते हैं? और क्या आपको कोई समस्या है? बेझिझक हमसे पूछें। और अधिक पोस्ट और अपडेट के लिए हमारी साइट ExcelWIKI पर जाना न भूलें।