एक्सेल - नई कार्यपुस्तिका बनाने और डेटा कॉपी करने के लिए मैक्रो

मुद्दा

मैं एक स्तंभ के आंशिक सेल सामग्री के आधार पर पंक्तियों की प्रतिलिपि बनाने के लिए मैक्रो की तलाश कर रहा हूं। मेरे पास "arc.xlsx" नामक एक एक्सेल स्प्रेडशीट है जिसमें से मैं कुछ निश्चित मानदंडों को पूरा करने पर डेटा को कुछ अन्य नई एक्सेल फाइलों में कॉपी करना चाहूंगा। एक्सेल फ़ाइल में स्थान C: \ Documents and Settings \ xxxx \ Desktop \ Company है। एक्सेल में केवल एक शुरुआत है।

नीचे arc.xlsx का एक नमूना है

 GP BR CUST_NO CUST_NAME दिन mo वर्ष I1 01 999999 SMITH 00 08 09 I1 ab 999999 SMITH 04 08 09 I1 सीडी 999999 SMITH 04 10 09 09 I1 01 999999 SMITH 04 01 10 I1 02999999 SMITH 27 02 10 I1 01 999999 SMITH 27 02 10 I1 सीडी 999999 एसएमईटी 02 03 10 आई 1 सीडी 999999 एसएमईटी 04 03 10 आई 1 सीडी 999999 एसएमईटी 30 07 09 I1 ab 999999 SMITH 30 07 09 I1 02 999999 SMITH 30 07 09 
  • मैं स्तंभ B में "ab 'वाली पंक्तियों की प्रतिलिपि बनाने के लिए मैक्रो चाहूंगा (शीर्षक BR के साथ) और उसी स्थान फ़ोल्डर में नाम ab.xlsx के साथ एक नई एक्सेल फ़ाइल में सहेजें।
  • और cd.xlsx, 01.xlsx इत्यादि के साथ फाइलों में डेटा को सहेजकर 'cd', '01' और '02' के लिए समान।

उपाय

1. आपके काम का एक बैकअप

2. काम की किताब खोलें

3. ALT + F11 दबाएं (एक ही समय में ALT कुंजी और F11 कुंजी दोनों)। यह खुला VBE

4. VBE के मेनू से, सम्मिलित करें पर क्लिक करें और फिर उस पर क्लिक करके मॉड्यूल चुनें। यह एक रिक्त मॉड्यूल खोलेगा

5. कोड को चुनने के बाद दिए गए कोड को कॉपी करें (निर्देश के बाद पाया जाएगा) और CTRL + C (दोनों कीज़ को एक ही समय में) दबाने पर

6. मॉड्यूल पर क्लिक करके और CTRL + V दबाकर नए जोड़े गए मॉड्यूल (चरण 4 देखें) में कोड पेस्ट करें (फिर से दोनों एक ही समय में)

7. सुनिश्चित करें कि पेस्ट किए गए कोड में कोई लाल रेखा नहीं है।

मैक्रो को चलाने के लिए F5 दबाएँ।

9 डिफ़ॉल्ट स्थान पर दस्तावेजों की जांच करें जहां आमतौर पर एक्सेल फ़ाइल को बचाता है।

यहाँ कोड है

 सब डिटेल्स () डिम इट डब्ल्यूबी स्टिंग अस स्ट्रींग न्यू डब्ल्यूबीबी स्टिंग दिस डब्ल्यूडब्ल्यूबी = एक्टिववर्क्सबुक। नेम ऑन नेक्स्ट शीट्स ("टेम्प्सशीट")। डिलीट ऑन एरर गोटो ० शीट्स। एक्टिवेटशीट डाउनलोड करें। नेम = "टेम्प्सशीट" शीट्स ("शीट १")। यदि ActiveSheet.AutoFilterMode का चयन करें, तो फिर सेल। त्रुटि पर फिर से शुरू करें ActiveSheet.ShowAllData पर त्रुटि GoTo 0 अंत में कॉलम ("बी: बी") का चयन करें। चयन करें। कॉपीबोर्ड ("tempsheet")। रेंज चुनें ("A1")। ActiveSheet.Paste Application का चयन करें। CutCopyMode = False if (Cell (1, 1) = "") उसके बाद Lastrow = Cell (1, 1)। And (xlDown) .Row अगर lastrow हो जाता है। Count फिर Range ("A1: A")। & lastrow - 1)। चयन का चयन करें। शिफ्ट:। xlUp अंत यदि अंतिम कॉलम है तो ("ए: ए")। कॉलम चुनें ("ए: ए")। उन्नत फ़िल्टर कार्रवाई: = xFFilterCopy, _ CopyToRange: = Range (")। बी 1 "), अनोखा: = सही कॉलम (" ए: ए ")। सेल हटाएं। चयन का चयन करें। कुंजी _ कुंजी 1: = रेंज (" ए 2 "), ऑर्डर 1: = xlAscending, _ हेडर: =lYes, ऑर्डर कार्ड: = 1, _ माचिस: = झूठा, अभिविन्यास: = xlTopToBottom, _ DataOption1: = xlSortNormal lMaxSupp = प्रकोष्ठ (पंक्तियाँ। 1, )। (xlUp) .Row s के लिए। uppno = 2 To lMaxSupp Windows (thisWB) .Activate supName = Sheets ("tempsheet")। Range ("A" & suppno) If supName "" तो Workbooks.AddWWorkbook.SaveAs supname newWB = ActiveWorkbook.Name Windows (thisWB)। शीट्स को सक्रिय करें ("शीट 1")। सेल का चयन करें। चयन करें। यदि ActiveSheet.AutoFilterMode = गलत है तो चयन करें। चयन फ़ायदे का काम करें। ऑटोफ़िल्टर फ़ील्ड: = 2, मानदंड 1: = = "& supName, _ ऑपरेटर: = xlAnd, Criteria2: = "" अंतिम = प्रकोष्ठ (पंक्तियाँ। 2, ।) (xlUp)। कम पंक्तियाँ ("1:" और अंतिम) .Copy Windows (newWB)। सक्रिय करें सक्रिय करें। सक्रिय करें ActiveWorkbook.Save ActiveWorkbook.Close समाप्ति यदि अगला शीट्स है ()। "tempsheet")। पत्रक हटाएं ("Sheet1")। यदि ActiveSheet.AutoFilterMode का चयन करें, तो सेल करें। ActiveSheet को चुनें। 

इस टिप के लिए Rizvisa1 का धन्यवाद।

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

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