यह ट्यूटोरियल आपको दिखाएगा कि VBA में PasteSpecial का उपयोग केवल कुछ सेल गुणों (उदा. मान, प्रारूप) को चिपकाने के लिए कैसे किया जाता है।
एक्सेल में, जब आप किसी सेल को कॉपी और पेस्ट करते हैं तो आप सेल के सभी गुणों को कॉपी और पेस्ट करते हैं: मान, प्रारूप, सूत्र, संख्या स्वरूपण, सीमाएँ, आदि:
इसके बजाय, आप केवल कुछ सेल गुणों को चिपकाने के लिए "विशेष चिपकाएँ" कर सकते हैं। एक्सेल में, पेस्ट स्पेशल मेनू को शॉर्टकट CTRL + ALT + V (सेल कॉपी करने के बाद) से एक्सेस किया जा सकता है:
यहां आप उन सेल गुणों के सभी संयोजन देख सकते हैं जिन्हें आप पेस्ट कर सकते हैं।
यदि आप पेस्ट स्पेशल मेनू का उपयोग करते हुए मैक्रो रिकॉर्ड करते हैं, तो आप बस जेनरेट कोड का उपयोग कर सकते हैं। विशेष पेस्ट करने के लिए वीबीए का उपयोग करने का यह अक्सर सबसे आसान तरीका है।
पेस्ट मान
मान चिपकाएँ केवल सेल "मान" चिपकाता है। यदि कक्ष में कोई सूत्र है, तो मान चिपकाएँ सूत्र परिणाम चिपकाएगा।
यह कोड एक ही कार्यपत्रक पर एकल कक्ष के लिए मानों को कॉपी और पेस्ट करेगा:
12 | रेंज ("ए 1")। कॉपी करेंरेंज ("बी 1")। पेस्ट स्पेशल पेस्ट: = xlPasteValues |
अलग-अलग शीट पर कॉपी और वैल्यू पेस्ट करें
यह उदाहरण अलग-अलग कार्यपत्रकों पर एकल कक्षों के मूल्यों को कॉपी और पेस्ट करेगा
12 | शीट्स ("शीट 1")। रेंज ("ए 1")। कॉपी करेंशीट्स ("शीट 2")। रेंज ("बी 1")। पेस्ट स्पेशल पेस्ट: = xlPasteValues |
ये उदाहरण सेल की श्रेणी के लिए मानों को कॉपी और पेस्ट करेंगे:
कॉपी और वैल्यू पेस्ट रेंज
12 | रेंज ("ए 1: बी 3")। कॉपी करेंरेंज ("C1")। पेस्ट स्पेशल पेस्ट: = xlPasteValues |
कॉपी और वैल्यू पेस्ट कॉलम
12 | कॉलम ("ए")। कॉपी करेंColumns("B").PasteSpecial Paste:=xlPasteValues |
कॉपी और वैल्यू पेस्ट पंक्तियां
12 | पंक्तियाँ(1).प्रतिलिपिपंक्तियाँ (2)। पेस्ट विशेष पेस्ट: = xlPasteValues |
पेस्ट मान और संख्या प्रारूप
मान चिपकाने से केवल सेल मान चिपकाया जाएगा। संख्या स्वरूपण सहित कोई स्वरूपण चिपकाया नहीं गया है।
अक्सर जब आप मान चिपकाते हैं तो आप शायद संख्या स्वरूपण को भी शामिल करना चाहेंगे ताकि आपके मान स्वरूपित रहें। आइए एक उदाहरण देखें।
यहां हम प्रतिशत वाले सेल पेस्ट को मान देंगे:
12 | शीट्स ("शीट 1")। कॉलम ("डी")। कॉपी करेंशीट्स ("शीट 2")। कॉलम ("बी")। पेस्ट स्पेशल पेस्ट: = xlPasteValues |
ध्यान दें कि प्रतिशत संख्या स्वरूपण कैसे खो जाता है और इसके बजाय एक मैला दशमलव मान दिखाया जाता है।
इसके बजाय आइए पेस्ट वैल्यू और नंबर फॉर्मेट का उपयोग करें:
12 | शीट्स ("शीट 1")। कॉलम ("डी")। कॉपी करेंशीट्स ("शीट 2")। कॉलम ("बी")। पेस्ट स्पेशल पेस्ट: = xlPasteValuesAndNumberFormats |
अब आप देख सकते हैं कि प्रतिशत स्वरूप को बनाए रखते हुए संख्या स्वरूपण भी चिपकाया गया है।
.पेस्ट के बजाय मूल्य
मूल्यों को चिपकाने के बजाय, आप रेंज ऑब्जेक्ट की वैल्यू प्रॉपर्टी का उपयोग कर सकते हैं:
यह A2 के सेल मान को B2 के सेल मान के बराबर सेट करेगा
1 | रेंज ("ए 2")। वैल्यू = रेंज ("बी 2")। वैल्यू: |
आप एकल कक्ष के मान के बराबर कक्षों की श्रेणी भी सेट कर सकते हैं:
1 | रेंज ("ए 2: सी 5")। वैल्यू = रेंज ("ए 1")। वैल्यू: |
या कोशिकाओं की एक श्रेणी जो समान आकार की कोशिकाओं की अन्य समान आकार की श्रेणी के बराबर होती है:
1 | रेंज ("बी 2: डी 4")। वैल्यू = रेंज ("ए 1: सी 3")। वैल्यू: |
वैल्यू प्रॉपर्टी का उपयोग करना कम टाइपिंग है। इसके अलावा, यदि आप एक्सेल वीबीए के साथ कुशल बनना चाहते हैं, तो आपको सेल की वैल्यू प्रॉपर्टी के साथ काम करने से परिचित होना चाहिए।
सेल वैल्यू बनाम वैल्यू 2 प्रॉपर्टी
तकनीकी रूप से, सेल के Value2 गुण का उपयोग करना बेहतर है। Value2 थोड़ा तेज़ है (यह केवल बहुत बड़ी गणनाओं के साथ मायने रखता है) और Value प्रॉपर्टी आपको एक छोटा परिणाम दे सकती है, सेल को मुद्रा या दिनांक के रूप में स्वरूपित किया गया है। हालांकि, 99%+ कोड जो मैंने देखा है वह .Value का उपयोग करता है न कि .Value2 का। मैं व्यक्तिगत रूप से .Value2 का उपयोग नहीं करता, लेकिन आपको पता होना चाहिए कि यह मौजूद है।
1 | रेंज ("ए 2")। वैल्यू 2 = रेंज ("बी 2")। वैल्यू 2 |
कॉपी पेस्ट बिल्डर
हमने एक "कॉपी पेस्ट कोड बिल्डर" बनाया है जो कोशिकाओं को कॉपी (या कट) और पेस्ट करने के लिए वीबीए कोड उत्पन्न करना आसान बनाता है। बिल्डर हमारा हिस्सा है वीबीए ऐड-इन: ऑटोमैक्रो.
ऑटोमैक्रो कई अन्य भी शामिल हैं कोड जेनरेटर, एक व्यापक कोड लाइब्रेरी, और शक्तिशाली कोडिंग टूल्स.
विशेष चिपकाएँ - प्रारूप और सूत्र
पेस्ट वैल्यू के अलावा, सबसे आम पेस्ट स्पेशल विकल्प पेस्ट फॉर्मेट और पेस्ट फॉर्मूला हैं
प्रारूप चिपकाएँ
पेस्ट प्रारूप आपको सभी सेल स्वरूपण पेस्ट करने की अनुमति देता है।
12 | रेंज ("ए 1: ए 10")। कॉपी करेंरेंज ("बी 1: बी 10")। पेस्ट स्पेशल पेस्ट: = xlPasteFormats |
पेस्ट सूत्र
चिपकाने वाले सूत्र केवल कक्ष सूत्रों को चिपकाएंगे। यदि आप सेल फ़ार्मुलों की प्रतिलिपि बनाना चाहते हैं, लेकिन सेल पृष्ठभूमि रंग (या अन्य सेल स्वरूपण) की प्रतिलिपि नहीं बनाना चाहते हैं तो यह भी बेहद उपयोगी है।
12 | रेंज ("ए 1: ए 10")। कॉपी करेंरेंज ("बी १: बी १०")। पेस्ट स्पेशल पेस्ट: = एक्सएल पेस्टफॉर्मुलास |
सूत्र और संख्या प्रारूप चिपकाएँ
ऊपर पेस्ट वैल्यू और नंबर फॉर्मेट के समान, आप फॉर्मूले के साथ नंबर फॉर्मेट को कॉपी और पेस्ट भी कर सकते हैं
यहां हम अकाउंटिंग नंबर फ़ॉर्मेटिंग और पेस्ट फ़ार्मुलों के साथ एक सेल फॉर्मूला कॉपी करेंगे।
12 | शीट्स ("शीट 1")। रेंज ("डी 3")। कॉपी करेंशीट्स ("शीट 2")। रेंज ("डी 3")। पेस्ट स्पेशल xlPasteFormulas |
ध्यान दें कि कैसे संख्या स्वरूपण खो जाता है और इसके बजाय एक मैला गैर-गोलाकार मान दिखाया जाता है।
इसके बजाय आइए पेस्ट फॉर्मूला और नंबर प्रारूपों का उपयोग करें:
12 | शीट्स ("शीट 1")। रेंज ("डी 3")। कॉपी करेंशीट्स ("शीट 2")। रेंज ("डी 3")। पेस्ट स्पेशल xlPasteFormulasAndNumberFormats |
अब आप देख सकते हैं कि लेखा प्रारूप को बनाए रखते हुए संख्या स्वरूपण भी चिपकाया गया है।
विशेष चिपकाएँ - स्थानान्तरित करें और रिक्त स्थान छोड़ें
विशेष चिपकाएँ - स्थानान्तरित करें
पेस्ट स्पेशल ट्रांसपोज़ आपको ऊपर-नीचे से बाएँ-दाएँ (या विज़-ए-वर्सा) के ओरिएंटेशन को बदलने वाले सेल को कॉपी और पेस्ट करने की अनुमति देता है:
12 | शीट्स ("शीट 1")। रेंज ("ए 1: ए 5")। कॉपी करेंशीट्स ("शीट 1")। रेंज ("बी 1")। पेस्ट स्पेशल ट्रांसपोज़: = ट्रू |
विशेष चिपकाएँ - रिक्त स्थान छोड़ें
स्किप ब्लैंक्स एक पेस्ट विशेष विकल्प है जिसका उपयोग उतनी बार नहीं किया जाना चाहिए जितना होना चाहिए। यह आपको कॉपी और पेस्ट करते समय केवल गैर-रिक्त कोशिकाओं की प्रतिलिपि बनाने की अनुमति देता है। तो रिक्त कक्षों की प्रतिलिपि नहीं बनाई जाती है।
नीचे इस उदाहरण में। हम कॉलम ए को कॉपी करेंगे, कॉलम बी में नियमित पेस्ट करेंगे और कॉलम सी में खाली पेस्ट को छोड़ देंगे। आप देख सकते हैं कि खाली सेल कॉलम सी में नीचे की छवि में पेस्ट नहीं किए गए थे।
123 | शीट्स ("शीट 1")। रेंज ("ए 1: ए 5")। कॉपी करेंशीट्स ("शीट 1")। रेंज ("बी 1")। पेस्ट स्पेशल स्किपब्लैंक: = गलतशीट्स ("शीट 1")। रेंज ("सी 1")। पेस्ट स्पेशल स्किपब्लैंक: = ट्रू |
अन्य पेस्ट विशेष विकल्प
विशेष चिपकाएँ - टिप्पणियाँ
1 | शीट्स ("शीट 1")। रेंज ("ए 1")। कॉपी शीट्स ("शीट 1")। रेंज ("ई 1")। पेस्ट स्पेशल xlPasteComments |
विशेष चिपकाएँ - सत्यापन
12 | शीट्स ("शीट 1")। रेंज ("ए 1: ए 4")। कॉपी करेंशीट्स ("शीट 1")। रेंज ("बी 1: बी 4")। पेस्ट स्पेशल xlPasteValidation |
विशेष पेस्ट करें - सभी स्रोत थीम का उपयोग कर रहे हैं
123 | कार्यपुस्तिकाएं (1)। पत्रक ("शीट 1")। रेंज ("ए 1: ए 2")। कॉपी करेंवर्कबुक (2)। शीट्स ("शीट 1")। रेंज ("ए 1")। पेस्ट स्पेशलवर्कबुक (2)। शीट्स ("शीट 1")। रेंज ("बी 1")। पेस्ट स्पेशल xlPasteAllUsingSourceTheme |
विशेष चिपकाएँ - सीमाओं को छोड़कर सभी
123 | रेंज ("बी 2: सी 3")। कॉपी करेंरेंज ("ई 2")। पेस्ट स्पेशलरेंज ("H2")। PasteSpecial xlPasteAllExceptBorders |
पेस्ट विशेष - कॉलम की चौड़ाई
मेरा एक निजी पसंदीदा। पेस्ट स्पेशल कॉलम की चौड़ाई कॉलम की चौड़ाई को कॉपी और पेस्ट करेगी।
123 | रेंज ("ए 1: ए 2")। कॉपी करेंरेंज ("सी 1")। पेस्टस्पेशलरेंज ("ई 1")। पेस्ट स्पेशल xlPasteColumnWidths |
PasteSpecial - सभी मर्जिंग कंडीशनल फ़ॉर्मेट
123 | रेंज ("ए 1: ए 4")। कॉपी करेंरेंज ("सी 1")। पेस्टस्पेशलरेंज ("ई 1")। पेस्ट स्पेशल xlPasteAllMergingConditionalFormats |