VBA का उपयोग करके डेटा से फ़िल्टर को कैसे लागू करें और हटाएं?

एक्सेल VBA फ़िल्टर

VBA फ़िल्टर टूल का उपयोग वांछित डेटा को सॉर्ट करने या प्राप्त करने के लिए किया जाता है, ऑटोफिल्टर फ़ंक्शन को वर्कशीट फ़ंक्शन के रूप में उपयोग किया जाता है, हालांकि इस फ़ंक्शन के साथ इसके अन्य तर्क हैं जो वैकल्पिक हैं और एकमात्र अनिवार्य तर्क वह अभिव्यक्ति है जो उदाहरण के लिए रेंज को कवर करती है कार्यपत्रक ("शीट 1")। रेंज ("ए 1")। ऑटोफिल्टर पहले कॉलम पर फ़िल्टर लागू करेगा।

VBA में फ़िल्टर उसी तरह से काम करता है जैसे यह वर्कशीट में काम करता है। केवल एक चीज अलग है कि हम कोडिंग के माध्यम से डेटा को फ़िल्टर करने के नियमित कार्य को स्वचालित कर सकते हैं।

AutoFilter एक फ़ंक्शन है जिसमें कई सिंटैक्स मान शामिल हैं। नीचे AutoFilter फ़ंक्शन में शामिल पैरामीटर हैं।

  • सीमा "AutoFilter" विकल्प का उपयोग करने के लिए हमें आपूर्ति करने वाली पहली चीज़ है। यह बस किस श्रेणी की कोशिकाओं के लिए हमें फ़िल्टर लागू करने की आवश्यकता है, उदाहरण के लिए, रेंज ("A1: D50")।
  • फ़ील्ड फ़ंक्शन में पहला तर्क है। एक बार VBA RANGE ऑब्जेक्ट के माध्यम से कक्षों की श्रेणी का चयन करने के बाद, हमें उस श्रेणी के किस स्तंभ के लिए फ़िल्टर लागू करना है, इसका उल्लेख करना होगा।
  • मानदंड 1 चयनित फ़ील्ड में कुछ भी नहीं है, लेकिन आप किस मूल्य को फ़िल्टर करना चाहते हैं।
  • यदि आप मानदंड 2 तर्क का उपयोग करना चाहते हैं तो ऑपरेटर का उपयोग किया जाता है । इस विकल्प में, हम नीचे दिए गए विकल्पों का उपयोग कर सकते हैं।
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterFontCcon, xlFopter10
  • दृश्यमान ड्रॉपडाउन यह है कि क्या फ़िल्टर लागू कॉलम में फ़िल्टर प्रतीक प्रदर्शित करना है या नहीं। यदि आप प्रदर्शित करना चाहते हैं, तो आप तर्क को TRUE के रूप में आपूर्ति कर सकते हैं या अन्यथा FALSE कर सकते हैं।

VBA का उपयोग करके डेटा को फ़िल्टर करने के उदाहरण

उदाहरण # 1 - डेटा पर फ़िल्टर लागू करें या निकालें

यदि आप डेटा के लिए फ़िल्टर विकल्प लागू करना चाहते हैं, तो हम इस विकल्प को बंद कर सकते हैं। उदाहरण के लिए, नीचे दी गई डेटा छवि देखें।

चरण 1: आपूर्ति डेटा रेंज

पहले फ़िल्टर विकल्प को सक्रिय करने के लिए, हमें आपूर्ति करना होगा जो हमारी डेटा श्रेणी है। उपरोक्त छवि में, हमारा डेटा A1 से G31 तक फैला हुआ है, इसलिए RANGE ऑब्जेक्ट का उपयोग करके इस रेंज की आपूर्ति करें।

कोड:

सब Filter_Example () रेंज ("A1: G31") एंड सब
चरण 2: फिर ऑटोफ़िल्टर फ़ंक्शन का उपयोग करें

अब इस रेंज के लिए ऑटिफ़िल्टर फ़ंक्शन का उपयोग करें।

कोड:

सब Filter_Example () रेंज ("A1: G31")। AutoFilter End Sub
चरण 3: फ़िल्टर को सक्षम करने के लिए कोड चलाएँ

बस इतना ही। ऑटो फ़िल्टर को सक्षम करने के लिए इस कोड को चलाएँ।

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

उदाहरण # 2 - फ़िल्टर विशिष्ट मान

अब हम देखेंगे कि AutoFilter विकल्प के मापदंडों का उपयोग कैसे करें। ऊपर जैसा ही डेटा लें। उदाहरण के लिए, अब हमें सभी "पुरुष" लिंग नामों को फ़िल्टर करने की आवश्यकता है।

चरण 1: रेंज चुनें और ऑटोफिल्टर फ़ंक्शन खोलें
चरण 2: फिर फ़ील्ड चुनें

फ़ंक्शन के पहले तर्क में अर्थात फ़ील्ड, हमें स्तंभ संदर्भ का उल्लेख करना होगा जिसे हम फ़िल्टर करना चाहते हैं। इस उदाहरण में, हमें केवल "पुरुष" उम्मीदवारों को फ़िल्टर करने की आवश्यकता है, जो "सी" कॉलम है, इसलिए कॉलम संख्या 3 है।

चरण 3: अब मेंशन क्राइटेरिया

अब इस आपूर्ति क्षेत्र के लिए, हमें मानदंड 1 का उल्लेख करने की आवश्यकता है, जिसका उल्लेख फ़ील्ड में फ़िल्टर करने के लिए हमें किस मूल्य की आवश्यकता है हमें इस कॉलम से "पुरुष" को फ़िल्टर करने की आवश्यकता है।

कोड:

सब Filter_Example () रेंज ("A1: G31")। ऑटफ़िल्टर फ़ील्ड: = 3, मानदंड 1: = "पुरुष" अंतिम उप
चरण 4: और कोड चलाएँ

ठीक है, यह सब है। यह कोड अब केवल "पुरुष" उम्मीदवारों को फ़िल्टर करेगा।

उदाहरण # 3 - OPERATOR तर्क का उपयोग

जब आप स्तंभ से एक से अधिक मान फ़िल्टर करना चाहते हैं, तो हमें "ऑपरेटर" तर्क का उपयोग करने की आवश्यकता है। उदाहरण के लिए, कॉलम "मेजर" से, हमें केवल "गणित और राजनीति" को फ़िल्टर करने की आवश्यकता है, फिर हमें इस तर्क का उपयोग करने की आवश्यकता है।

चरण 1: रेंज और ऑटोफिल्टर फील्ड का चयन करें

सबसे पहले, कोशिकाओं और क्षेत्रों की श्रेणी की आपूर्ति करें

कोड:

सब Filter_Example () रेंज ("A1: G31")। AutoFilter फ़ील्ड: = 5, एंड सब
चरण 2: मान के रूप में मानदंड 1 दर्ज करें

दर्ज किए गए उल्लेख के लिए, हमें "मठ" के रूप में मानदंड 1 की आपूर्ति करने की आवश्यकता है ।

कोड:

सब Filter_Example () रेंज ("A1: G31")। ऑटफ़िल्टर फ़ील्ड: = 5, मानदंड 1: = "गणित", एंड सब
चरण 3: ऑपरेटर xl का उपयोग करें

चूंकि हमें उसी स्तंभ या फ़ील्ड से एक और मान फ़िल्टर करने की आवश्यकता है , ऑपरेटर प्रतीक का उपयोग "xlOr" के रूप में करें।

कोड:

सब Filter_Example () रेंज ("A1: G31")। ऑटफ़िल्टर फ़ील्ड: = 5, मानदंड 1: = "गणित", ऑपरेटर: = xlOr समाप्ति उप
चरण 4: राजनीति के रूप में मानदंड 2 दर्ज करें

और मानदंड 2 तर्क के लिए "राजनीति" के रूप में मूल्य का उल्लेख करें।

कोड:

सब Filter_Example () रेंज ("A1: G31")। ऑटफ़िल्टर फ़ील्ड: = 5, मानदंड 1: = "गणित", ऑपरेटर: = xlOr, मानदंड 2: = "राजनीति" अंत

यह कॉलम "मेजर" से "मठ" और "राजनीति" दोनों को फ़िल्टर करेगा।

उदाहरण # 4 - ऑपरेटर सिंबल के साथ फिल्टर नंबर

उदाहरण के लिए, यदि आप संख्याओं को फ़िल्टर करना चाहते हैं, तो हम विशिष्ट संख्या के साथ-साथ ऊपर, नीचे या विशिष्ट मानों और मानों की श्रेणी के बीच फ़िल्टर कर सकते हैं।

उदाहरण के लिए, आयु कॉलम से, यदि आप 30 वर्ष से अधिक आयु के व्यक्तियों को फ़िल्टर करना चाहते हैं, तो हम नीचे दिए गए कोड को लिख सकते हैं।

कोड:

सब Filter_Example () रेंज ("A1: G31")। ऑटफ़िल्टर फ़ील्ड: = 7, मानदंड 1: = "> 30" अंतिम उप

यह उन सभी मूल्यों को फ़िल्टर करेगा जो 30 से अधिक हैं।

अब, यदि आप 21 और 31 के बीच मान फ़िल्टर करना चाहते हैं, तो हम नीचे दिए गए कोड का उपयोग कर सकते हैं।

कोड:

सब Filter_Example () रेंज ("A1: G31")। ऑटफ़िल्टर फ़ील्ड: = 7, मानदंड 1: = "> 21", ऑपरेटर: = xlAnd, Criteria2: = "<31" अंतिम उप

यह 21 से 30 वर्ष की आयु के व्यक्तियों को फ़िल्टर करेगा।

उदाहरण # 5 - एक कॉलम से अधिक के लिए फ़िल्टर लागू करें

यदि आप एक से अधिक कॉलम मानदंड से मान फ़िल्टर करना चाहते हैं, तो हमें थोड़ी अलग तकनीक का उपयोग करने की आवश्यकता है।

यदि आप "छात्र की स्थिति" को "स्नातक" और "देश" को "यूएस" के रूप में फ़िल्टर करना चाहते हैं, तो सबसे पहले, हमें "के साथ" बयान के तहत कोशिकाओं की श्रेणी को आपूर्ति करने की आवश्यकता है।

कोड:

सब Filter_Example () रेंज ("A1: G31") के साथ अंत उप के साथ

अब कथन के अंदर, फ़िल्टर किए जाने वाले पहले मानदंड की आपूर्ति करें।

कोड:

सब Filter_Example (रेंज के साथ ("A1: G31")।

अब अगली पंक्ति में, "फ़ील्ड" को 6 और मानदंड को "यूएस" के रूप में बदलकर "देश" के लिए भी ऐसा ही करें।

कोड:

सब Filter_Example () रेंज के साथ ("A1: G31") .ऑटोफिल्टर फ़ील्ड: = 4, मानदंड 1: = "स्नातक"।

अब यह केवल "यूएस" के लिए "स्नातक" फ़िल्टर करेगा।

याद रखने वाली चीज़ें

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

दिलचस्प लेख...