VBA - वर्कबुक में एक शीट जोड़ना

VBA - वर्कबुक में एक शीट जोड़ना

परिचय

परिणाम आप प्राप्त करना चाहते हैं के आधार पर, आप या तो उपयोग कर सकते हैं:
  • कॉपी विधि => किसी मौजूदा शीट की कॉपी के लिए
  • विधि जोड़ें => अपनी कार्यपुस्तिका में एक नई रिक्त शीट जोड़ने के लिए।

आपको यह भी सुनिश्चित करना होगा कि नई शीट का नाम आज्ञाकारी है। यह कहना है, शीट का नाम किसी मौजूदा के समान नहीं होना चाहिए या किसी भी निषिद्ध वर्ण को शामिल करना चाहिए। दोनों ही मामलों में, सत्यापन के तरीके समान होने चाहिए।

कॉपी विधि

एक शीट की प्रतिलिपि बनाएँ। नई शीट का डेटा और प्रारूप स्रोत शीट के समान होगा।

वाक्य - विन्यास

अभिव्यक्ति। कोपी ( पहले, बाद )

अभिव्यक्ति या तो शीट या वर्कशीट ऑब्जेक्ट हो सकती है।

पहले और बाद के पैरामीटर वैकल्पिक हैं। आप केवल इन दो मापदंडों में से एक को निर्दिष्ट कर सकते हैं। वे वेरिएंट प्रकार के होते हैं और आप जिस कॉपी को चाहते हैं उसके पहले या बाद में शीट का पता लगाने का प्रतिनिधित्व कर सकते हैं। यदि पैरामीटर छोड़ा जाता है, तो शीट स्वचालित रूप से एक नई कार्यपुस्तिका में कॉपी हो जाती है।

फिर क्या होता है?

प्रतिलिपि विधि के साथ एक नई शीट बनाते समय:
  • शीट वांछित स्थान पर बनाई गई है (कार्यपुस्तिका में किसी अन्य शीट से पहले या बाद में)
  • स्रोत शीट के नाम के आधार पर इसका नाम बदला गया है। उदाहरण: शीट 1 => शीट 1 (2)
  • यह कॉपी की गई शीट के समान है।
  • यह सक्रिय पत्रक बन जाता है। यदि शीट को नई कार्यपुस्तिका में कॉपी किया जाता है, तो यह सक्रिय कार्यपुस्तिका बन जाती है।

उपयोग के उदाहरण

"शीट 3" के बाद "शीट 1" को कॉपी करें

 वर्कशीट ("शीट 1")। कॉपी के बाद: = वर्कशीट ("शीट 3") 

"शीट 2" से पहले "शीट 4" को कॉपी करें:

 शीट्स ("शीट 4"): इससे पहले कॉपी करें: = शीट्स ("शीट 2") 

नई कार्यपुस्तिका में "पुनर्कथन" शीट की प्रतिलिपि बनाएँ

 कार्यपत्रक ( "संक्षिप्त")। कॉपी 

अंतिम पत्रक के नाम की परवाह किए बिना, कार्यपुस्तिका के अंतिम स्थान पर 1 के रूप में अनुक्रमित शीट को कॉपी करें:

 शीट्स (1)। कोपी के बाद: = शीट्स (शीट्स.काउंट) 

अंतिम पत्रक के नाम की परवाह किए बिना, कार्यपुस्तिका की शुरुआत में 10 के रूप में अनुक्रमित शीट की प्रतिलिपि बनाएँ:

 चादरें (10)। पहले वाला: = चादरें (1) 

आप अपनी सक्रिय वर्कबुक की कई शीट को एक नई वर्कबुक में कॉपी करना चाहते हैं:

 शीट्स (एरे ("शीट 1", "शीट 3", "शीट 5"))। कॉपी 

विधि जोड़ें

एक नया स्प्रेडशीट (ग्राफिक्स या मैक्रो) बनाता है। नई वर्कशीट सक्रिय शीट बन जाती है।

इस नई शीट में कोई डेटा या प्रारूपण नहीं है।

वाक्य - विन्यास

अभिव्यक्ति .Add ( पहले, बाद, गणना, प्रकार )

अभिव्यक्ति या तो शीट या वर्कशीट ऑब्जेक्ट हो सकती है।

पहले, बाद, गणना और प्रकार के पैरामीटर वैकल्पिक हैं।

किसी भी और पहले - आप केवल इन मापदंडों में से एक निर्दिष्ट कर सकते हैं। वे वेरिएंट प्रकार के होते हैं और आप जिस कॉपी को चाहते हैं उसके पहले या बाद में शीट का पता लगाने का प्रतिनिधित्व कर सकते हैं।

काउंट पैरामीटर भी एक वेरिएंट है। यह उन चादरों की संख्या का प्रतिनिधित्व करता है जिन्हें आप जोड़ना चाहते हैं।

प्रकार पैरामीटर उस शीट के प्रकार का प्रतिनिधित्व करता है जिसे आप जोड़ना चाहते हैं।

  • xlWorkSheet - एक वर्कशीट जोड़ता है
  • xlChart - एक चार्ट शीट जोड़ता है
  • xlExcel4MacroSheet - एक मैक्रो शीट (Excel4) जोड़ता है
  • xlExcel4IntlMacroSheet - एक मैक्रो शीट का विज्ञापन करता है
  • xlDialogSheet - एक डायलॉग शीट जोड़ता है।

NB: अपने मापदंडों का नाम बदलना मत भूलना या सिंटैक्स नीचे की त्रुटि वापस करेगा:

 ActiveWorkbook.Sheets.Add इससे पहले: = Worksheets (Worksheets.Count), 1, xlChart 

उपयोग के उदाहरण

कार्यपुस्तिका में अंतिम शीट के बाद एक शीट रखो:

 शीट्स। इसके बाद: = वर्कशीट (वर्कशीट.काउंट) 

सक्रिय कार्यपुस्तिका के "पहले स्थान" पर तीन पत्रक जोड़ता है:

 ActiveWorkbook.Sheets.Add इससे पहले: = कार्यपत्रक (1), गणना: = 3 

"Wbk18" (ओपन!) नामक कार्यपुस्तिका में एक चार्ट शीट को "शीट 4" नाम की शीट के बाद जोड़ता है

 वर्कबुक ("Wbk18")। शीट्स। इसके बाद: = वर्कशीट ("शीट 4"), टाइप करें: = xlChart 

चादर का परीक्षण

जांचें कि क्या शीट पहले से ही कार्यपुस्तिका में मौजूद है

 'Test si la feuille अस्तित्व में déjà फ़ंक्शन Feuil_Exist (strWbk As String, strWsh As String) As Boolean' Gestionnaire d'erreur On Error Resume Next '' Test "Feuil_Exist = (कार्यपुस्तिकाएँ (strWbk)। शीश) (strWsh)। अंत समारोह 

जाँच करें कि फ़ाइल नाम में निषिद्ध वर्ण हैं या नहीं

 'टेस्ट सी ला चाइन कन्टेस्टेंट अन कार्टरएयर ए वेटर फंक्शन वैलिड_नाम (स्ट्रिंग के रूप में स्ट्रिंग, स्ट्रच के रूप में स्ट्रिंग) बूलियन डिम के रूप में बाइट, टीबी_कार () स्ट्रिंग के रूप में, स्ट्रोबिब अस स्ट्रिंग स्ट्रोबिब = "/ \: *?" "?" 'लिस्टे देस कारैक्टेरेस ए éviter Tb_Car = स्प्लिट (StrConv (strProhib, vbUnicode), Chr $ (0))' Boucle sur tous les caractères àéviter 'Nota: le -1 est dû au भाजित डे ला चाइन पैर ली सेपरेटर 6r ) एन एनसेट, ला चैन से टर्मेंट बराबर अन Chr (0) il convient d'exclure CE dernier caractère for i = LBound (Tb_Car) To UBound (Tb_Car) - 1 'टेस्ट सी ला चाएं contient un caractère eré ifStr (strName), Tb_Car (i))> 0 फिर 'Si oui: रिटर्न फाल्स Valid_Name = गलत' ET Retourne le caractère निषेध strChr = Tb_Car (i) एक्जिट फंक्शन अंत Next I 'Si OK: Return True Valid_Name = True End फ़ंक्शन 

सत्यापन फ़ंक्शन को कॉल करना

कॉपी या ऐड विधि दोनों के लिए कोड समान है।
 उप प्रधानाचार्य () डिम strNewName String, strCara As String strNewName = "NewSheet" यदि Valid_Name (strNewName, strCara) = गलत है तो MsgBox "Le nom:" और strNewName & "est invalide।" & vbCrLf & _ "Un nom de feuille ne peut pas contenir le caractère:" & strCara, vbCritical Exit Sub End यदि If Feuil_Exist (ThisWorkbook .Name, strNewName) = True तो MsgBox "Le nom:" और strNewName नाम। " & vbCrLf & _ "Ce nom de feuille est déjà उपयोगितावादी dans ceasasurur।", vbCritical Exit Sub End यदि ThisWorkbook.Sheets.Add 'Ou: यहWorkbook.Sheets ("Feuil1") है: = Sheets.Count के बाद कॉपी करें। ActiveSheet.Name = strNewName अंत उप 

ऑफिस 2013 के लिए कुछ उपयोगी टिप्स

कार्यालय 2013 पहले देखे गए लोगों के लिए दो पूरक तरीके लाता है:
  • एक शीट और कई शीट्स पर कई सेल कॉपी करें
  • चार्ट ऑब्जेक्ट्स के संग्रह के लिए Add2 विधि।

FillAcrossSheets विधि का उपयोग करके सेल की एक श्रृंखला की प्रतिलिपि बनाएँ

यह विधि केवल Office 2013 के लिए उपलब्ध है। आप "शीट 1" से "शीट 3", "शीट 5" और "शीट 7" कोशिकाओं की श्रेणी की प्रतिलिपि बनाना चाहते हैं।

 शीट्स = ऐरे ("शीट 3", "शीट 5", "शीट 7") शीट्स (शीट्स)। एफिलएक्रॉसशीट्स वर्कशीट ("शीट 1")। रेंज ("ए 1: सी 5") 

इस विधि के पैरामीटर हैं:

  • रेंज: आवश्यक है
  • प्रकार: वैकल्पिक
  • xlFillWithAll: सामग्री और स्वरूपों की प्रतिलिपि बनाएँ।
  • xlFillWithContents: सामग्री की प्रतिलिपि बनाएँ।
  • xlFillWithFormats: स्वरूपों को कॉपी करें।

Add2 विधि

यह विधि केवल Office 2013 के लिए उपलब्ध है। यह विधि चार्ट ऑब्जेक्ट्स के संग्रह पर लागू होती है और शीट्स और वर्कशीट ऑब्जेक्ट्स के साथ उपयोग किए जाने पर " रनटाइम " त्रुटि देता है। सिंटैक्स को छोड़कर Microsoft.com पर अधिक जानकारी नहीं:

अभिव्यक्ति .Add ( पहले, बाद, गणना, NewLayout )

अभिव्यक्ति एक वर्कशीट ऑब्जेक्ट का प्रतिनिधित्व करता है

पैरामीटर ऐड विधि के समान हैं, बस टाइप करें पैरामीटर को NewLayout के साथ बदलें। यदि NewLayout True पर सेट है, तो नए नियमों का उपयोग करके ग्राफिक डाला जाता है।

पिछला लेख अगला लेख

शीर्ष युक्तियाँ