जब हम कई एक्सेल शीट के साथ काम कर रहे होते हैं, तो कभी-कभी हमें बेहतर पठनीयता के लिए कुछ शर्तों के साथ डेटा को एक स्प्रेडशीट से दूसरे में कॉपी करना पड़ता है। VBA लागू किया जा रहा है एक्सेल में किसी भी ऑपरेशन को चलाने के लिए सबसे प्रभावी, तेज और सबसे सुरक्षित तरीका है। इस लेख में, हम आपको दिखाएंगे कि कैसे VBA मैक्रो के साथ Excel में उन्नत फ़िल्टर के साथ किसी अन्य शीट पर डेटा कॉपी करें।
कार्यपुस्तिका डाउनलोड करें
आप यहां से निःशुल्क अभ्यास एक्सेल वर्कबुक डाउनलोड कर सकते हैं।
एक्सेल में उन्नत फाइलर के साथ डेटा को दूसरी शीट पर कॉपी करने के लिए VBA के साथ 3 तरीके
निम्नलिखित डेटासेट को देखें। एक एक्सेल वर्कशीट है जिसका नाम मूल . है . इस शीट में B4 से E12 . श्रेणी के कुछ डेटा शामिल हैं . उस श्रेणी में डुप्लिकेट मान भी होते हैं। रेंज G4 से H5 मानदंड . रखता है . हम क्या करना चाहते हैं, हम डेटा को B5:E12 . श्रेणी से कॉपी करेंगे , जब जॉन नाम . से स्तंभ है चिह्न 80 से कम (सेल G4:H5 . में मानदंड ) और उन विशिष्ट डेटा को उन्नत फ़िल्टर . के साथ अन्य शीट में पेस्ट करें एक्सेल में तीन अलग-अलग तरीकों से।
हम देखेंगे कि डेटा कॉपी करने के लिए हार्डकोडेड मैक्रो कैसे डालें , चयन के आधार पर फ़िल्टर को उन्नत कैसे करें और कैसे मैक्रो रिकॉर्ड करके एक शीट से दूसरी शीट में डेटा ट्रांसफर करें . और उपरोक्त डेटासेट उल्लिखित सभी विधियों को निष्पादित करने का उदाहरण होगा।
1. एक्सेल में उन्नत फ़िल्टर के साथ डेटा को किसी अन्य शीट पर कॉपी करने के लिए VBA कोड एम्बेड करें
यहां, आप VBA . सीखेंगे कोड से एकमात्र डेटा कॉपी करें मूल शीट जब जॉन के अंक 80 से कम हों किसी अन्य नामांकित पत्रक . पर लक्ष्य उन्नत फ़िल्टर के साथ।
चरण:
- शुरुआत में, Alt + F11 दबाएं अपने कीबोर्ड पर या टैब पर जाएं डेवलपर -> विजुअल बेसिक विजुअल बेसिक संपादक खोलने के लिए ।
- अगला, पॉप-अप कोड विंडो में, मेनू बार से, सम्मिलित करें -> मॉड्यूल क्लिक करें ।
- फिर, निम्न कोड को कॉपी करें और कोड विंडो में पेस्ट करें।
Sub AdvancedFilterCode()
Dim iRange As Range
Dim iCriteria As Range
'set the range to filter and the criteria range
Set iRange = Sheets("Original").Range("B4:E12")
Set iCriteria = Sheets("Original").Range("G4:H5")
'copy the filtered data to the destination
iRange.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=iCriteria, CopyToRange:=Sheets("Target").Range("B4:E4"), Unique:=True
End Sub
आपका कोड अब चलने के लिए तैयार है।
- अब, F5 दबाएं अपने कीबोर्ड पर या मेनू बार से चलाएं -> उप/उपयोगकर्ता प्रपत्र चलाएं . चुनें . आप बस छोटा रन आइकन . पर भी क्लिक कर सकते हैं उप-मेनू बार में मैक्रो चलाने के लिए।
कोड निष्पादन के बाद, परिणाम देखने के लिए नीचे दी गई छवि को देखें।
परिणामस्वरूप, केवल वही डेटा जहां जॉन के अंक 80 से कम हैं कॉपी किया गया है लक्ष्य . में शीट मूल . से शीट VBA . के उन्नत फ़िल्टर के साथ ।
और पढ़ें: एक्सेल में किसी अन्य शीट पर डेटा कॉपी करने के लिए उन्नत फ़िल्टर का उपयोग कैसे करें
2. उपयोगकर्ता-निर्धारित चयन द्वारा डेटा फ़िल्टर करने के लिए VBA मैक्रो लागू करें
अब, आप सीखेंगे कि एकमात्र डेटा को मूल . से कैसे फ़िल्टर करें शीट जब जॉन के अंक 80 से कम हों गंतव्य . नामक एक अन्य शीट पर उपयोगकर्ता द्वारा चयनित श्रेणी . से VBA . के उन्नत फ़िल्टर के साथ एक्सेल में।
चरण:
- पहले की तरह ही, Visual Basic Editor खोलें डेवलपर . की ओर से टैब और सम्मिलित करें एक मॉड्यूल कोड विंडो में।
- फिर, कोड विंडो में, निम्न कोड को कॉपी करें और पेस्ट करें।
Sub AdvancedFilterBySelection()
Dim iTrgt As String
Dim iRange As Range
Dim iCriteria As Range
Dim iDestination As Range
On Error Resume Next
iTrgt = ActiveWindow.RangeSelection.Address
Set iRange = Application.InputBox("Select Range to Filter", "Excel", iTrgt, , , , , 8)
If iRange Is Nothing Then Exit Sub
Set iCriteria = Application.InputBox("Select Criteria Range", "Excel", "", , , , , 8)
If iCriteria Is Nothing Then Exit Sub
Set iDestination = Application.InputBox("Select Destination Range", "Excel", "", , , , , 8)
If iDestination Is Nothing Then Exit Sub
iRange.AdvancedFilter xlFilterCopy, iCriteria, iDestination, False
iDestination.Worksheet.Activate
iDestination.Worksheet.Columns.AutoFit
End Sub
आपका कोड अब चलने के लिए तैयार है।
- अब, चलाएं मैक्रो।
- फिर, एक पॉप-अप बॉक्स दिखाई देगा। श्रेणी चुनें जिसे आप फ़िल्टर करना want चाहते हैं (हमारे मामले में, यह श्रेणी B4 से E12 . तक है )।
- बाद में, ठीक दबाएं ।
- इसके बाद, एक और पॉप-अप बॉक्स दिखाई देगा। इस बार आपको मानदंड श्रेणी का चयन करना होगा जिसे आपने अपने डेटासेट में संग्रहीत किया है (मानदंड सेल G4 से H5 . तक हैं) हमारे डेटासेट के लिए)।
- फिर से, ठीक दबाएं ।
- आखिरी बार, एक और पॉप-अप बॉक्स दिखाई देगा। और अब, आपको गंतव्य श्रेणी का चयन करना होगा जहां आप कॉपी किए गए डेटा को संग्रहीत करना चाहते हैं . हमारे मामले में, यह सेल B2 . है गंतव्य . में शीट ।
- फिर, ठीक दबाएं ।
परिणाम देखने के लिए नीचे दी गई छवि को देखें।
अंत में, केवल वही डेटा जहां जॉन के अंक 80 से कम हैं कॉपी किया गया है गंतव्य . में शीट मूल . से शीट VBA . के उन्नत फ़िल्टर के साथ ।
संबंधित सामग्री: Excel उन्नत फ़िल्टर काम नहीं कर रहा है (2 कारण और समाधान)
समान रीडिंग
- उन्नत फ़िल्टर का उपयोग कैसे करें यदि मानदंड श्रेणी में एक्सेल में टेक्स्ट है
- डायनामिक उन्नत फ़िल्टर एक्सेल (VBA और मैक्रो)
- Excel में मानदंड श्रेणी के साथ उन्नत फ़िल्टर (18 अनुप्रयोग)
- Excel में कई मानदंडों के साथ उन्नत फ़िल्टर (15 उपयुक्त उदाहरण)
- Excel VBA उदाहरण:मानदंड (6 मानदंड) के साथ उन्नत फ़िल्टर का उपयोग करें
3. एक्सेल में मैक्रो रिकॉर्डिंग द्वारा डेटा को दूसरी शीट पर कॉपी करने के लिए वीबीए मैक्रो लागू करें
इस खंड में, आप मूल से केवल डेटा निकालने की इसी समस्या का समाधान जानेंगे शीट जब जॉन के अंक 80 से कम हों फ़िल्टर किए गए . नामक एक अन्य शीट पर मैक्रो रिकॉर्डिंग . द्वारा के VBA एक्सेल में।
चरण:
- सबसे पहले, नई वर्कशीट खोलें (हमारे मामले में, यह शीट फ़िल्टर की गई . है )।
- उस पत्रक में, केवल शीर्ष लेख पंक्ति संगृहीत करें मूल डेटासेट का।
- अगला, मूल पर जाएं शीट . आपको एक छोटा मैक्रो साइन दिखाई देगा शीट के नीचे बाईं ओर। चिह्न क्लिक करें मैक्रो रिकॉर्ड करना शुरू करने के लिए।
- फिर, एक रिकॉर्ड मैक्रो पॉप-अप विंडो दिखाई देगी। एक मैक्रो नाम Provide प्रदान करें जो आपको चाहिये। हम उन्नत फ़िल्टर . को परिभाषित करते हैं हमारे मैक्रो नाम . के रूप में ।
- अगला, चुनें कि आप मैक्रो को कहाँ संग्रहीत करना चाहते हैं . हम मैक्रो को मौजूदा कार्यपुस्तिका में संग्रहीत करना चाहते थे, इसलिए हमने यह कार्यपुस्तिका . चुना ।
- बाद में, ठीक क्लिक करें ।
- अब, मूल पर वापस जाएं शीट और आप देखेंगे कि आपने अभी जो मैक्रो शुरू किया है, उसकी रिकॉर्डिंग शुरू हो गई है।
- फिर, आपको शीट . पर जाना होगा जो कॉपी किए गए डेटा को रोक कर रखेगा (उदा. फ़िल्टर्ड शीट)।
- एक सक्रिय सेल है उस शीट में और डेटा -> उन्नत . पर जाएं ।
- अगला, एक उन्नत फ़िल्टर पॉप-अप बॉक्स दिखाई देगा।
- पहले, जांचें दूसरे स्थान पर कॉपी करें कार्रवाई . से विकल्प
- अब, सूची श्रेणी . के पास स्थित टेक्स्ट बॉक्स में , मूल . पर जाएं शीट और श्रेणी चुनें फ़िल्टर करने के लिए (हमारे डेटासेट के लिए, श्रेणी B4:E12 . है )।
- फिर, मानदंड श्रेणी . के पास स्थित टेक्स्ट बॉक्स में , मानदंड श्रेणी का चयन करें (जॉन के अंक 80 से कम हैं ) मूल . में संग्रहीत शीट (हमारे डेटासेट के लिए, श्रेणी G4:H5 . है )।
- अब, इसमें कॉपी करें . के बगल में स्थित टेक्स्ट बॉक्स में , फ़िल्टर किए गए . पर जाएं शीट , शीट जहां आप कॉपी किए गए डेटा को संग्रहीत करना चाहते हैं और शीर्षक श्रेणी चुनें (हमारे डेटासेट के लिए, श्रेणी B4:E4 . है )।
- अंत में, ठीक क्लिक करें ।
इस पूरी प्रक्रिया से उत्पन्न परिणाम देखने के लिए, नीचे दी गई छवि को देखें। केवल डेटा जहां जॉन के अंक 80 से कम हों कॉपी किया गया है फ़िल्टर किए गए . में शीट मूल . से शीट मैक्रो रिकॉर्डिंग . के साथ ।
- अब, मैक्रो चिह्न पर क्लिक करें शीट के नीचे बाईं ओर मैक्रो रिकॉर्डिंग रोकने के लिए . अब आपके पास एक रिकॉर्ड किया गया मैक्रो है जो हर बार आपके द्वारा चलाए जाने पर वर्णित उपरोक्त प्रक्रिया को निष्पादित करेगा।
लेकिन एक दोष है इस विधि का। अगर आप मूल . में नया डेटा जोड़ते हैं शीट , फ़िल्टर किया गया शीट डेटा मानदंडों को पूरा करने पर भी अपडेट नहीं किया जाएगा।
हम अपने नए फ़िल्टर किए गए . चाहते हैं शीट जब हम मूल . में नया डेटा जोड़ते हैं तो कोड को निष्पादित करके स्वचालित रूप से अपडेट किया जाता है शीट . ऐसा करने के लिए, हमें कोड को थोड़ा संशोधित करना होगा।
हम जो चाहते हैं उसे प्राप्त करने के सभी चरण नीचे दिखाए गए हैं।
चरण:
- सबसे पहले, टैब से, देखें -> मैक्रोज़ -> मैक्रो देखें . चुनें ।
- बाद में, एक मैक्रो पॉप-अप विंडो दिखाई देगी। मैक्रो नाम . चुनें जिसे आपने अभी-अभी रिकॉर्डिंग करके बनाया है (उन्नत फ़िल्टर हमारे मामले के लिए)।
- फिर, संपादित करें पर क्लिक करें ।
- रिकॉर्ड किए गए मैक्रो के पीछे का कोड कोड विंडो में दिखाई देगा (नीचे चित्र देखें)।
- अब, नीले निशान वाले हिस्से को हटाएं (नीचे चित्र में दिखाया गया है) कोड से।
- फिर, कोड संशोधित करें जैसा कि निम्न चित्र में दिखाया गया है।
- अब, अपडेट किया गया कोड होगा:
Sub AdvancedFilter()
Sheets("Original").Range("B4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Original").Range("G4:H5"), CopyToRange:=Sheets("Filtered").Range("B4:E4"), Unique:=False
End Sub
- सहेजें यह कोड।
- अब, मूल पर वापस जाएं शीट और नया डेटा जोड़ें जो मापदंड के तहत आएगा। उदाहरण के लिए, हमने जॉन . की एक और पंक्ति जोड़ी है की जानकारी जहां प्राप्त अंक 76 है जो 80 से कम अंक . के मानदंड के अंतर्गत आता है ।
- फिर, भागो कोड और परिणाम के लिए निम्न छवि को देखें।
- एक नई कॉपी की गई पंक्ति है फ़िल्टर किए गए . में शीट के जॉन मार्क 76 . के साथ की जानकारी जो मापदंड को पूरा करता है (अंक<80 )।
और पढ़ें:केवल Excel में अद्वितीय रिकॉर्ड के लिए उन्नत फ़िल्टर का उपयोग कैसे करें
निष्कर्ष
निष्कर्ष निकालने के लिए, इस लेख ने आपको उन्नत फ़िल्टर के साथ किसी अन्य शीट पर डेटा कॉपी करने के बारे में 3 अलग-अलग मानदंड दिखाए हैं। एक्सेल में VBA मैक्रो . के साथ . मुझे उम्मीद है कि यह लेख आपके लिए बहुत फायदेमंद रहा होगा। विषय के संबंध में कोई भी प्रश्न पूछने के लिए स्वतंत्र महसूस करें।
संबंधित लेख
- Excel में रिक्त कक्षों को बाहर करने के लिए उन्नत फ़िल्टर का उपयोग कैसे करें (3 आसान ट्रिक्स)
- Excel VBA:एक श्रेणी में कई मानदंडों के साथ उन्नत फ़िल्टर (5 तरीके)
- केवल एक्सेल में विशिष्ट रिकॉर्ड के लिए उन्नत फ़िल्टर का उपयोग कैसे करें
- Excel में किसी अन्य स्थान पर कॉपी करने के लिए उन्नत फ़िल्टर लागू करें
- Excel उन्नत फ़िल्टर:"इसमें शामिल नहीं है" (2 तरीके) लागू करें
- Excel में एक कॉलम में एकाधिक मानदंडों के आधार पर उन्नत फ़िल्टर लागू करें