एक्सेल की ऑटोफिल्टर सुविधा कुछ शर्तों के आधार पर डेटा निकालने के लिए वास्तव में कुशल है। लेकिन कभी-कभी तकनीकी मुद्दों के कारण, ऑटोफिल्टर छिप जाता है या भले ही कोई फ़िल्टर न हो, एक्सेल दिखाता है कि वहाँ है। उस स्थिति में, यह समझना काफी असंभव हो जाता है कि एक्सेल वर्कशीट के लिए ऑटोफिल्टर सक्षम है या नहीं। VBA लागू करना एक्सेल में किसी भी ऑपरेशन को चलाने का सबसे प्रभावी, त्वरित और सुरक्षित तरीका है। इस लेख में, हम आपको VBA मैक्रो के साथ एक्सेल में जांचें कि ऑटोफिल्टर चालू है या नहीं के 4 आसान और त्वरित तरीके दिखाएंगे।
वर्कबुक डाउनलोड करें
आप यहाँ से मुफ्त अभ्यास एक्सेल वर्कबुक डाउनलोड कर सकते हैं।
VBA के साथ एक्सेल में जांचें कि ऑटोफिल्टर चालू है या नहीं के 4 त्वरित तरीके
इस खंड का पालन करके, आप सीखेंगे कि VBA के साथ एक्सेल में जांचें कि ऑटोफिल्टर चालू है या नहीं 4 अलग-अलग तरीकों से।

ऊपर उदाहरण डेटासेट है जिसका यह लेख प्रक्रियाओं का वर्णन करने के लिए पालन करेगा।
1. एक्सेल वर्कशीट में ऑटोफिल्टर चालू या बंद है या नहीं जांचने के लिए VBA एम्बेड करें
इस खंड में, आप सीखेंगे कि VBA के साथ एक्सेल वर्कशीट के लिए ऑटोफिल्टर चालू है या नहीं जांचें। इसे निष्पादित करने के चरण नीचे दिए गए हैं।
चरण:
- शुरुआत में, अपने कीबोर्ड पर Alt + F11 दबाएं या डेवलपर -> विजुअल बेसिक टैब पर जाएं विजुअल बेसिक एडिटर खोलने के लिए।

- अगला, पॉप-अप कोड विंडो में, मेनू बार से, सम्मिलित करें -> मॉड्यूल पर क्लिक करें।

- फिर, निम्न कोड कॉपी करें और कोड विंडो में पेस्ट करें।
Sub AutoFilterCheck() If ActiveSheet.AutoFilterMode = True Then MsgBox "Auto Filter is turned on" Else MsgBox "Auto Filter is turned off" End If End Sub
आपका कोड अब चलाने के लिए तैयार है।

- अब, अपने कीबोर्ड पर F5 दबाएं या मेनू बार से रन -> रन सब/यूजरफॉर्म चुनें। आप सब-मेनू बार में छोटे रन आइकन पर क्लिक करके मैक्रो भी चला सकते हैं।

सफल कोड निष्पादन के बाद, परिणाम देखने के लिए निम्न छवि को देखें।

अब, उपरोक्त छवि को देखें। भले ही डेटासेट में कोई फ़िल्टर तीर न हो, एक्सेल MsgBox हमें बता रहा है कि इस शीट में ऑटोफिल्टर चालू है।
VBA लागू करना इस तरह के परिदृश्यों के लिए वास्तव में सुविधाजनक है जहां किसी ऑपरेशन के बारे में अनिश्चितता है; VBA मैक्रो आपको सही परिणाम निकालने में मदद करता है भले ही आपकी आँखें उन्हें न देख सकें।
VBA कोड व्याख्या
If ActiveSheet.AutoFilterMode = True Then MsgBox "Auto Filter is turned on" Else MsgBox "Auto Filter is turned off" End If
कोड का यह टुकड़ा यदि सक्रिय शीट के लिए ऑटो फिल्टर मोड सही है को संदर्भित करता है, तो एक्सेल MsgBox में "ऑटो फिल्टर चालू है" संदेश लौटाता है; अन्यथा, यह "ऑटो फिल्टर बंद है" संदेश फेंकता है।
और पढ़ें: एक्सेल VBA: ऑटोफिल्टर हटाएं यदि मौजूद है (7 तरीके)
2. VBA कोड डीबग करें और सक्रिय शीट में कुल ऑटोफिल्टर की संख्या प्राप्त करें
यह खंड आपको दिखाएगा कि आप कोड को डीबग कैसे कर सकते हैं और गिन सकते हैं कि एक्सेल शीट में कितने ऑटोफिल्टर हैं। कोड निष्पादित करने के बाद, यह परिणाम को एक्सेल VBA के तत्काल विंडो में फेंक देगा।
इसे प्राप्त करने के चरण नीचे दिए गए हैं।
चरण:
- पहले की तरह ही, डेवलपर टैब से विजुअल बेसिक एडिटर खोलें और कोड विंडो में एक मॉड्यूल सम्मिलित करें।
- फिर, निम्न कोड कॉपी करें और कोड विंडो में पेस्ट करें।
Sub CountAutoFilters() Dim iCount As Long If ActiveSheet.AutoFilterMode = True Then iCount = 1 Debug.Print "AutoFilterMode Count: " & iCount End Sub
आपका कोड अब चलाने के लिए तैयार है।

- उसके बाद, मैक्रो चलाएं जैसा कि हमने ऊपर के खंड में दिखाया था। परिणाम नीचे छवि में दिखाया गया है।

जैसा कि आप ऊपर छवि में देख सकते हैं, तत्काल विंडो में आपको अपनी वर्कशीट में सक्षम ऑटोफिल्टर की कुल संख्या मिलेगी।
VBA कोड व्याख्या
Dim iCount As Long
चर की घोषणा।
If ActiveSheet.AutoFilterMode = True Then iCount = 1 Debug.Print "AutoFilterMode Count: " & iCount
कोड में इन पंक्तियों का अर्थ है, कि यदि सक्रिय शीट के लिए ऑटो फिल्टर मोड सही है, तो गिनती शुरू करें और कुल संख्या प्रिंट करें।
और पढ़ें: VBA के साथ एक ही फ़ील्ड पर बहु-मानदंड ऑटोफिल्टर (4 तरीके)
3. एक्सेल में जांचने के लिए VBA लागू करें कि कोई विशिष्ट कॉलम फ़िल्टर किया गया है या नहीं
मान लीजिए आप VBA के साथ जांचना चाहते हैं कि आपकी एक्सेल स्प्रेडशीट में एक विशिष्ट कॉलम फ़िल्टर किया गया है या नहीं।
आइए देखें कि ऐसा कैसे करें।
चरण:
- जैसा कि पहले दिखाया गया है, डेवलपर टैब से विजुअल बेसिक एडिटर खोलें और कोड विंडो में एक मॉड्यूल सम्मिलित करें।
- फिर, निम्न कोड कॉपी करें और कोड विंडो में पेस्ट करें।
Sub CheckColumnFilter() Dim iSheet As Worksheet Set iSheet = ActiveSheet If iSheet.AutoFilter.Filters(2).On Then MsgBox "Column B is filtered." Else MsgBox "Column B is not filtered." End If End Sub
आपका कोड अब चलाने के लिए तैयार है।

- बाद में, मैक्रो चलाएं और आउटपुट देखने के लिए निम्न छवि को देखें।

अब, उपरोक्त छवि पर विचार करें। भले ही आप देख सकें कि कॉलम B में एक फ़िल्टर तीर है, मैक्रो हमें बता रहा है कि वहाँ नहीं है। तो, सफल कोड निष्पादन के बाद, हम कह सकते हैं कि कॉलम B ऑटोफिल्टर नहीं किया गया है।
VBA कोड व्याख्या
Dim iSheet As Worksheet
वर्कशीट के लिए चर की घोषणा।
Set iSheet = ActiveSheet
सक्रिय शीट को घोषित चर में संग्रहीत करें।
If iSheet.AutoFilter.Filters(2).On Then MsgBox "Column B is filtered." Else MsgBox "Column B is not filtered." End If
कोड का यह टुकड़ा यदि सक्रिय शीट के लिए कॉलम 2 या कॉलम B का ऑटो फिल्टर सही है को संदर्भित करता है, तो एक्सेल MsgBox में "कॉलम B फ़िल्टर किया गया है।" संदेश लौटाता है; अन्यथा, यह "कॉलम B फ़िल्टर नहीं किया गया है।" संदेश फेंकता है।
और पढ़ें: VBA के साथ एक्सेल में किसी निश्चित मान के बराबर नहीं ऑटोफिल्टर मान
4. एक्सेल वर्कबुक में सक्षम ऑटोफिल्टर की जांच के लिए VBA मैक्रो
इस खंड में, आप सीखेंगे कि आप किसी विशिष्ट एक्सेल वर्कबुक में शीट के लिए सक्षम या अक्षम ऑटोफिल्टर की जांच कैसे कर सकते हैं।
इसे निष्पादित करने के चरण नीचे दिए गए हैं।
चरण:
- सबसे पहले, डेवलपर टैब से विजुअल बेसिक एडिटर खोलें और कोड विंडो में एक मॉड्यूल सम्मिलित करें।
- फिर, निम्न कोड कॉपी करें और कोड विंडो में पेस्ट करें।
Sub CheckAutofilterSheet() Dim z As Double For z = 1 To ThisWorkbook.Sheets.Count If ThisWorkbook.Sheets(z).AutoFilterMode Then MsgBox ThisWorkbook.Sheets(z).Name & " has enabled Autofilter" End If Next End Sub
आपका कोड अब चलाने के लिए तैयार है।

- अगला, मैक्रो चलाएं। अब, परिणाम देखने के लिए निम्न छवि को देखें।

जैसा कि आप उपरोक्त छवि में देख सकते हैं, हमारे वर्कबुक में "डेटासेट" नाम की एक वर्कशीट है। एक्सेल का MsgBox हमें दिखा रहा है कि "डेटासेट" शीट में ऑटोफिल्टर चालू है। आप अपने विशिष्ट एक्सेल वर्कबुक में अपनी सभी स्प्रेडशीट के लिए यह कोड चला सकते हैं।
VBA कोड व्याख्या
Dim z As Double
चर की घोषणा।
For z = 1 To ThisWorkbook.Sheets.Count
मौजूदा वर्कबुक के पहले शीट से कुल शीट संख्या तक लूपिंग शुरू करता है।
If ThisWorkbook.Sheets(z).AutoFilterMode Then MsgBox ThisWorkbook.Sheets(z).Name & " has enabled Autofilter" End If Next
यदि पहली शीट में ऑटो फिल्टर मोड चालू है, तो MsgBox में संदेश फेंकें। उसके बाद, कोड शर्त समाप्त करता है और पुनरावृत्ति करने के लिए अगली शीट पर जाता है। यह तब तक ऐसा करना जारी रखता है जब तक यह वर्तमान वर्कबुक के सभी शीट संख्या तक नहीं पहुँच जाता।
और पढ़ें: एक्सेल VBA के साथ ऑटोफिल्टर और दृश्यमान पंक्तियाँ कॉपी करें
निष्कर्ष
निष्कर्ष निकालने के लिए, इस लेख ने आपको VBA मैक्रो के साथ एक्सेल में जांचें कि ऑटोफिल्टर चालू है या नहीं के 4 आसान और त्वरित तरीके दिखाए। मुझे आशा है कि यह लेख आपके लिए बहुत फायदेमंद रहा होगा। विषय के संबंध में कोई भी प्रश्न पूछने के लिए स्वतंत्र महसूस करें।
संबंधित लेख
- [समाधान]: ऑटोफिल्टर मेथड ऑफ रेंज क्लास फेल्ड (5 समाधान)
- VBA ऑटोफिल्टर: सबसे छोटे से सबसे बड़े क्रम में सॉर्ट करें (3 तरीके)