2012-10-10 10 views
5

मेरे पास निम्न कोड है, जो पूरे सेल को अपने नए गंतव्य पर कॉपी करने के लिए ठीक काम करता है।श्रेणियों का उपयोग करके, मैं कैसे कर सकता हूं। COPY DESTINATION पेस्ट VALUES

Dim ws As Worksheet, rng As Range 

Set ws = Sheets("Duplicates") 
Set rng = ws.Range("A2") 

rng.Copy Destination:=Range("A2:A" & Range("G" & Rows.Count).End(xlUp).Row) 
  1. यह संभव है कि एक paste special सामना करने के लिए है।
  2. या क्या मैं दो श्रेणियों ऑब्जेक्ट्स का उपयोग कर कॉपी/पेस्ट को दो लाइनों में विभाजित करने की आवश्यकता है?

संपादित करें:

ठीक है, हम यह निष्कर्ष निकाला है कि आप एक पेस्ट एक प्रति के रूप में एक ही लाइन पर विशेष नहीं हो सकता। जो मैंने पाया है वह है कि आप वैसे भी नहीं करना चाहेंगे।

यदि आप रिकॉर्ड 1 से एक सूत्र कॉपी करते हैं और इसे VALUES के रूप में सभी रिकॉर्ड में पेस्ट करते हैं, तो आपको पहले रिकॉर्ड के लिए फॉर्मूला का मान प्राप्त होगा।

यह वही नहीं है जो मैं चाहता था। तो आपको सूत्रों को सूत्रों के रूप में सभी रिकॉर्ड्स पर प्रतिलिपि बनाना होगा, फिर उन सूत्रों की प्रतिलिपि बनाएँ और मूल्यों के रूप में पेस्ट करें।


Dim ws As Worksheet, rng As Range 
Set ws = Sheets("Duplicates") 

पहले रेंज (फार्मूले के साथ एकल कक्ष) को सेट करें और कॉपी/पेस्ट सामग्री कर्नल G के आधार पर स्प्रेडशीट के निचले भाग तक:

Set rng = ws.Range("A2") 
rng.Copy Destination:=Range("A2:A" & Range("G" & Rows.Count).End(xlUp).Row) 

हाल में चिपकाया फॉर्मूला का चयन करें , दूसरी पंक्ति से नीचे। उन्हें कॉपी करें। फिर सामग्रियों को एक ही स्थान पर मान के रूप में पेस्ट करें।

Set rng = ws.Range("A3:A" & Range("G" & Rows.Count).End(xlUp).Row) 
rng.Copy 
rng.PasteSpecial (xlPasteValues) 
Application.CutCopyMode = False 
+2

पिछले एक जवाब मैं यहाँ लिखा देखें (आप सही आकार के रूप में कि आपने ध्यान दिया करने के लिए RNG निर्धारित किया है एक बार): http: // stackoverflow .com/प्रश्न/12721781/वर्कशीट-पेस्ट-वैल्यू-सेव-ए-द-रिटर्न-द-मूल-फ़ाइल-उपयोग-वीबीए/12723462 # 12723462 – mattboy

+0

धन्यवाद @ मैटबॉय, लेकिन यह मेरे प्रश्न का पूरी तरह उत्तर नहीं देता है। मैं एक पंक्ति को पेस्ट विशेष करना चाहता हूं। क्या यह संभव है? – aSystemOverload

+0

मुझे नहीं पता कि। यदि यह संभव है तो मुझे इसके बारे में जानना अच्छा लगेगा, उम्मीद है कि किसी के पास जवाब होगा! – mattboy

उत्तर

2

वैकल्पिक रूप से, आप बस सीमा मूल्यों प्रतिलिपि & पेस्ट का उपयोग किए बिना प्रदान कर सकते हैं: इस काम के बाद

Set r1 = Range("D1", "D7") 
Set r2 = Range("E1", "E7") 

r2.Value = r1.Value ' copies current values from one range to another 

, r2 सीमा मान नहीं सूत्रों भले ही r1 forumlas है होगा।

आपके मामले में, शायद:

rng.Value = rng.Value 

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

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