2011-12-09 8 views
16

मैं इसी तरह के सवाल यह है कि एक कार्यपुस्तिका में एक संपूर्ण कार्यपत्रक को कॉपी और एक अन्य कार्यपुस्तिका को चिपकाने के साथ सौदा मिल गया है, लेकिन मैं बस एक संपूर्ण कार्यपत्रक को कॉपी करने और करने के लिए चिपकाने में दिलचस्पी है एक नई वर्कशीट - एक ही कार्यपुस्तिका में।कॉपी Excel में एक नया कार्यपत्रक में एक संपूर्ण कार्यपत्रक 2010

मैं 2003 .xls फ़ाइल को 2010xxm में परिवर्तित करने की प्रक्रिया में हूं और वर्कशीट्स के बीच प्रतिलिपि बनाने और चिपकाने के लिए उपयोग की जाने वाली पुरानी विधि सही पंक्ति ऊंचाई के साथ पेस्ट नहीं करती है। मेरे प्रारंभिक वैकल्पिक हल प्रत्येक पंक्ति के माध्यम से लूप के लिए गया था और कार्यपत्रक से पंक्ति ऊंचाइयों मैं के माध्यम से से है, तो पाश को कॉपी कर रहा हूँ हड़पने और कार्यपत्रक मैं करने के लिए चिपकाने हूँ में पंक्ति ऊंचाइयों के लिए उन मूल्यों को सम्मिलित करने के लिए, लेकिन इस दृष्टिकोण के साथ समस्या यह है कि है शीट में बटन होते हैं जो नई पंक्तियां उत्पन्न करते हैं जो पंक्ति संख्या को बदलते हैं और शीट का प्रारूप ऐसा होता है कि सभी पंक्तियां केवल एक चौड़ाई नहीं हो सकती हैं।

क्या मैं सच में ऐसा करने में सक्षम होना चाहते हैं बस संपूर्ण कार्यपत्रक को कॉपी और पेस्ट करें है।

ThisWorkbook.Worksheets("Master").Cells.Copy 
newWorksheet.Paste 

मुझे आश्चर्य है कि .xlsm को बदलने अब तोड़ने के लिए इस खड़ी कर रहा है कर रहा हूँ: यहाँ 2003 के संस्करण से कोड है। कोई सुझाव या विचार बहुत अच्छा होगा।

+2

एक छोटी सी अधिक शब्दों वाले लेकिन एक अच्छी तरह से लिखा सवाल – aevanko

उत्तर

30

यह सिर्फ अंतिम शीट

Sub Test() 
Dim ws1 As Worksheet 
Set ws1 = ThisWorkbook.Worksheets("Master") 
ws1.Copy ThisWorkbook.Sheets(Sheets.Count) 
End Sub 
15
ThisWorkbook.Worksheets("Master").Sheet1.Cells.Copy _ 
    Destination:=newWorksheet.Cells 

ऊपर कोशिकाओं की प्रतिलिपि बनाएगा के रूप में प्रति डाल करने के लिए नीचे दिए गए की तरह एक सटीक प्रतिलिपि को चलाने के लिए सरल है। यदि आप वास्तव में पूरी शीट को डुप्लिकेट करना चाहते हैं, तो मैं @brettdj's answer के साथ जाऊंगा।

+6

मैं सभी कोशिकाओं वरीयता में प्रयुक्त रेंज को कॉपी सुझाव देना चाहेंगे। – brettdj

1
'Make the excel file that runs the software the active workbook 
ThisWorkbook.Activate 

'The first sheet used as a temporary place to hold the data 
ThisWorkbook.Worksheets(1).Cells.Copy 

'Create a new Excel workbook 
Dim NewCaseFile As Workbook 
Dim strFileName As String 

Set NewCaseFile = Workbooks.Add 
With NewCaseFile 
    Sheets(1).Select 
    Cells(1, 1).Select 
End With 

ActiveSheet.Paste 
+1

Btw, तुम सिर्फ का उपयोग 'NewCaseFile.Worksheets (1) .Paste' नई कार्यपुस्तिका और चादर को चिपकाने के लिए चयन करने के लिए की जरूरत नहीं है,। –

6
' Assume that the code name the worksheet is Sheet1 

' Copy the sheet using code name and put in the end. 
' Note: Using the code name lets the user rename the worksheet without breaking the VBA code 
Sheet1.Copy After:=Sheets(Sheets.Count) 

' Rename the copied sheet keeping the same name and appending a string " copied" 
ActiveSheet.Name = Sheet1.Name & " copied" 
1

मैं वास्तव में brettdj के कोड पसंद आया @, लेकिन फिर मैंने पाया कि जब मैं प्रतिलिपि संपादित करने के लिए अतिरिक्त कोड जोड़ा, यह बजाय अपने मूल चादर अधिलेखित कर दिया। मैंने अपना जवाब tweaked है ताकि आगे कोड ws1 पर इंगित किया मूल की बजाय नई चादर को प्रभावित करेगा।

Sub Test() 
    Dim ws1 as Worksheet 
    ThisWorkbook.Worksheets("Master").Copy 
    Set ws1 = ThisWorkbook.Worksheets("Master (2)") 
End Sub 
संबंधित मुद्दे