वीबीए में, आप बना सकते हैं ऑटो फ़िल्टर कक्षों की श्रेणी या किसी Excel तालिका को फ़िल्टर करने के लिए। इस ट्यूटोरियल में, आप सीखेंगे कि कैसे बनाएं ऑटो फ़िल्टर एक या कई कॉलम के लिए और कई शर्तों के लिए।
यदि आप सीखना चाहते हैं कि VBA में उन्नत फ़िल्टर का उपयोग कैसे करें, तो यहाँ क्लिक करें: VBA उन्नत फ़िल्टर
वीबीए में ऑटोफिल्टर बनाना
सबसे पहले, आप देखेंगे कि कैसे बनाया जाए ऑटो फ़िल्टर एक सीमा में, ताकि उपयोगकर्ता डेटा को फ़िल्टर कर सके। उदाहरणों में हम जिस डेटा का उपयोग करेंगे, वह चित्र 1 में है:
छवि 1. ऑटोफ़िल्टर उदाहरणों के लिए डेटा
यहाँ बनाने के लिए कोड है ऑटो फ़िल्टर:
1 | शीट 1. रेंज ("ए 1: ई 1")। ऑटोफिल्टर |
सक्षम करने के लिए ऑटो फ़िल्टर, हमें श्रेणी के शीर्षलेख को निर्दिष्ट करने की आवश्यकता है, हमारे मामले में A1:E1, और इसका उपयोग करें ऑटो फ़िल्टर वस्तु की विधि श्रेणी. परिणामस्वरूप, हमारी डेटा श्रेणी में फ़िल्टर सक्रिय हो गए हैं:
छवि 2. डेटा के लिए ऑटोफ़िल्टर सक्षम किया गया
फ़ील्ड और मानदंड पैरामीटर के साथ ऑटोफ़िल्टर
वीबीए आपको कुछ निश्चित मानों के साथ एक निश्चित फ़ील्ड को स्वचालित रूप से फ़िल्टर करने की अनुमति देता है।
ऐसा करने के लिए, आपको पैरामीटर का उपयोग करना होगा खेत तथा मानदंड1 विधि का ऑटो फ़िल्टर. इस उदाहरण में, हम तीसरे कॉलम को फ़िल्टर करना चाहते हैं (उत्पाद) के लिये उत्पाद ए केवल। यहाँ कोड है:
12 | शीट1.रेंज ("ए 1: ई 1")। ऑटोफिल्टर फील्ड: = 3, _मानदंड1:="उत्पाद ए" |
में खेत पैरामीटर, आप रेंज में कॉलम की संख्या (एक्सेल में नहीं) सेट कर सकते हैं, जबकि in मानदंड1 आप वह मान डाल सकते हैं जिसे आप फ़िल्टर करना चाहते हैं। कोड निष्पादित करने के बाद, हमारी तालिका इस तरह दिखती है:
छवि 3. फ़ील्ड और मानदंड के साथ ऑटोफ़िल्टर
जैसा कि आप देख सकते हैं, केवल पंक्तियों के साथ उत्पाद ए तीसरे कॉलम में डेटा श्रेणी में प्रदर्शित होते हैं।
फ़ील्ड और एकाधिक मानदंड मानों के साथ ऑटोफ़िल्टर
यदि आप एक फ़ील्ड को कई मानों के साथ फ़िल्टर करना चाहते हैं, तो आपको पैरामीटर का उपयोग करने की आवश्यकता है ऑपरेटर का ऑटो फ़िल्टर तरीका। एकाधिक मानों को फ़िल्टर करने के लिए, आपको सेट करने की आवश्यकता है ऑपरेटर प्रति xlफ़िल्टर मान और के सभी मान डालने के लिए मानदंड एक सरणी में। इस उदाहरण में, हम फ़िल्टर करते हैं उत्पाद के लिए स्तंभ उत्पाद ए तथा उत्पाद बी. यहाँ कोड उदाहरण है:
123 | शीट1.रेंज ("ए 1: ई 1")। ऑटोफिल्टर फील्ड: = 3, _मानदंड 1: = ऐरे ("उत्पाद ए", "उत्पाद बी"), _ऑपरेटर:=xlFilterValues |
जब हम कोड निष्पादित करते हैं, तो हमें उत्पाद ए और उत्पाद बी के साथ केवल पंक्तियां मिलती हैं, जैसा कि आप चित्र 4 में देख सकते हैं:
छवि 4. एकाधिक मानदंड मानों के साथ ऑटोफ़िल्टर
एकाधिक मानदंडों के साथ ऑटोफ़िल्टर डेटा रेंज
यदि आप एक से अधिक मापदंड वाली किसी फ़ील्ड को फ़िल्टर करना चाहते हैं, तो आपको उपयोग करना होगा मानदंड1 तथा मानदंड2 पैरामीटर, लेकिन यह भी ऑपरेटर xlAnd.
अगले उदाहरण में, हम पहले कॉलम को फ़िल्टर करेंगे (दिनांक) दिसंबर 2022 में तारीखों के लिए। इसलिए, हमारे पास दो मानदंड हैं: एक तारीख 12/01/18 से अधिक और 12/31/18 से कम। यह कोड है:
1234 | शीट1.रेंज ("A1:E1")। ऑटोफ़िल्टर फ़ील्ड: = 1, _मानदंड1:=">=12/01/2018", _ऑपरेटर:=xlऔर, _मानदंड2:="<=12/31/2018" |
जब हम कोड निष्पादित करते हैं, तो आप देख सकते हैं कि डेटा श्रेणी में केवल दिसंबर की तिथियां प्रदर्शित होती हैं:
छवि 5. क्षेत्र के लिए कई मानदंडों के साथ ऑटोफ़िल्टर
AutoFilter विधि के ऑपरेटर पैरामीटर मान
अगली तालिका में। आप के सभी संभावित मान देख सकते हैं ऑपरेटर AutoFilter विधि के पैरामीटर और उनके विवरण:
ऑपरेटर | विवरण |
xlऔर | कई मानदंड शामिल हैं - मानदंड 1 और मानदंड 2 |
एक्सएलओआर | कई मानदंडों में से एक शामिल है - मानदंड 1 या मानदंड 2 |
xlTop10आइटम | उच्चतम रैंक वाले मानों की एक निश्चित संख्या को फ़िल्टर करता है (मानदंड 1 में निर्दिष्ट संख्या) |
xlनीचे10आइटम | निम्नतम रैंक वाले मानों की एक निश्चित संख्या को फ़िल्टर करता है (मानदंड 1 में निर्दिष्ट संख्या) |
xlTop10Percent | उच्चतम रैंक वाले मानों का एक निश्चित प्रतिशत फ़िल्टर करता है (मानदंड1 में निर्दिष्ट%) |
xlनीचे10प्रतिशत | निम्नतम रैंक वाले मानों का एक निश्चित प्रतिशत फ़िल्टर करता है (मानदंड1 में निर्दिष्ट%) |
xlफ़िल्टर मान | ऐरे के साथ कई मानदंड मान शामिल हैं |
xlफ़िल्टरसेलरंग | रंगों के लिए कोशिकाओं को फ़िल्टर करता है |
xlFilterFontColor | फ़ॉन्ट रंगों के लिए सेल फ़िल्टर करें |
xlFIlterIcon | फ़िल्टर आइकन |
xlफ़िल्टरगतिशील | गतिशील मान फ़िल्टर करें |