Computer >> कंप्यूटर >  >> सॉफ्टवेयर >> Office

स्वत:फ़िल्टर करने का तरीका एक्सेल में VBA के साथ एक निश्चित मान के बराबर नहीं है

इस लेख में, मैं आपको दिखाऊंगा कि आप VBA के साथ उन मानों को ऑटोफ़िल्टर कैसे कर सकते हैं जो एक निश्चित मान के बराबर नहीं हैं एक्सेल में। आप सेल की चुनी हुई श्रेणी के साथ-साथ संपूर्ण वर्कशीट से मानों को ऑटोफ़िल्टर करना सीखेंगे।

ऑटोफिल्टर मान एक्सेल में वीबीए के साथ एक निश्चित मूल्य के बराबर नहीं है (त्वरित दृश्य)

Sub Autofilter_Values_from_Whole_Worksheet()

Source_Worksheet = "Sheet1"
Destination_Worksheet = "Sheet2"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).UsedRange.Rows.Count
    If Worksheets(Source_Worksheet).UsedRange.Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).UsedRange.Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

End Sub

स्वत:फ़िल्टर करने का तरीका एक्सेल में VBA के साथ एक निश्चित मान के बराबर नहीं है

2 Excel में VBA के साथ एक निश्चित मान के बराबर नहीं मानों को स्वतः फ़िल्टर करने के लिए उपयुक्त तरीके

बिना देर किए चलिए आज की अपनी मुख्य चर्चा पर चलते हैं। सबसे पहले, हम संपूर्ण कार्यपत्रक से मानों को स्वतः फ़िल्टर करेंगे, और फिर किसी कार्यपत्रक की एक विशिष्ट श्रेणी से।

1. ऑटोफ़िल्टर मान जो संपूर्ण वर्कशीट से एक निश्चित मूल्य के बराबर नहीं हैं

सबसे पहले, हम एक्सेल VBA के साथ संपूर्ण वर्कशीट से उन मानों को ऑटोफिल्टर करना सीखेंगे जो एक निश्चित मान के बराबर नहीं हैं। ।

यहाँ मेरे पास Sheet1 . नामक एक वर्कशीट है जिसमें कुछ छात्रों के नाम . हैं , उनके अंक एक परीक्षा में, और उनका ग्रेड . डेटा सेट सीधे सेल A1 . से शुरू होता है ।

स्वत:फ़िल्टर करने का तरीका एक्सेल में VBA के साथ एक निश्चित मान के बराबर नहीं है

हमारा उद्देश्य उन छात्रों को ऑटोफिल्टर करना है जिन्हें F . के बराबर ग्रेड नहीं मिला है पत्रक2 . नामक कार्यपत्रक में ।

⧪ चरण 1:इनपुट सम्मिलित करना

सबसे पहले, आपको कोड में इनपुट डालना होगा। इसमें स्रोत कार्यपत्रक (पत्रक1) . का नाम शामिल है , गंतव्य कार्यपत्रक (पत्रक2) , कॉलम जिन्हें फ़िल्टर किया जाएगा (1, 3) , निश्चित मान वाला स्तंभ (3) , और निश्चित मान (F)

Source_Worksheet = "Sheet1"
Destination_Worksheet = "Sheet2"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

⧪ चरण 2:फ़ोर-लूप के साथ मानों को स्वतः फ़िल्टर करना

इसके बाद, हम फॉर-लूप के माध्यम से पुनरावृति करके स्रोत कार्यपत्रक से गंतव्य कार्यपत्रक में मानों को स्वतः फ़िल्टर करेंगे ।

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).UsedRange.Rows.Count
    If Worksheets(Source_Worksheet).UsedRange.Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).UsedRange.Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

इसलिए, संपूर्ण VBA कोड होगा:

⧭ वीबीए कोड:

Sub Autofilter_Values_from_Whole_Worksheet()

Source_Worksheet = "Sheet1"
Destination_Worksheet = "Sheet2"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).UsedRange.Rows.Count
    If Worksheets(Source_Worksheet).UsedRange.Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).UsedRange.Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

End Sub

<मजबूत> स्वत:फ़िल्टर करने का तरीका एक्सेल में VBA के साथ एक निश्चित मान के बराबर नहीं है

⧭ आउटपुट:

अपनी आवश्यकता के अनुसार इनपुट बदलें, और फिर कोड चलाएँ (पहले Sheet2 नामक एक नई वर्कशीट बनाएं। , या आपकी गंतव्य कार्यपत्रक . के रूप में कुछ भी , फिर कोड चलाएँ। अन्यथा, यह एक त्रुटि दिखाएगा।)

आपको अपने डेटा सेट के विशिष्ट कॉलम मिलेंगे (कॉलम 1 और 3 इस उदाहरण में) गंतव्य कार्यपत्रक में स्वतः फ़िल्टर किया गया जिसमें केवल वे मान शामिल हैं जो निश्चित मान के बराबर नहीं हैं (F इस उदाहरण में)।

स्वत:फ़िल्टर करने का तरीका एक्सेल में VBA के साथ एक निश्चित मान के बराबर नहीं है

और पढ़ें: VBA से Excel में समान फ़ील्ड पर एकाधिक मानदंड वाले ऑटोफ़िल्टर (4 तरीके)

2. ऑटोफ़िल्टर मान जो Excel VBA वाले कक्षों की एक विशिष्ट श्रेणी से एक निश्चित मान के बराबर नहीं हैं

हमने एक्सेल VBA में संपूर्ण वर्कशीट से उन मानों को ऑटोफिल्टर करना सीखा है जो एक निश्चित मान के बराबर नहीं हैं। ।

अब हम एक विशिष्ट श्रेणी के मानों को स्वतः फ़िल्टर करना सीखेंगे।

यहाँ मेरे पास Sheet3 . नामक एक वर्कशीट है जिसमें फिर से कुछ छात्रों के नाम . शामिल हैं , उनके अंक एक परीक्षा में, और उनका ग्रेड . लेकिन इस बार डेटा सेट सेल B3 . से शुरू होता है सेल तक D15

स्वत:फ़िल्टर करने का तरीका एक्सेल में VBA के साथ एक निश्चित मान के बराबर नहीं है

इस बार हमारा उद्देश्य उन छात्रों को ऑटोफिल्टर करना है जिन्हें F . के बराबर ग्रेड नहीं मिला है उसी वर्कशीट में, सेल में F3

⧪ चरण 1:इनपुट सम्मिलित करना

सबसे पहले, आपको कोड में इनपुट डालना होगा। इस बार इसमें सोर्स वर्कशीट (शीट 3) . का नाम शामिल होगा , गंतव्य वर्कशीट (शीट 3) , गंतव्य सेल (F3 ), कॉलम जिन्हें फ़िल्टर किया जाएगा (1, 3) , निश्चित मान वाला स्तंभ (3) , और निश्चित मान (F)

Source_Worksheet = "Sheet3"
Source_Range = "B3:D15"

Destination_Worksheet = "Sheet3"
Destination_Cell = "F3"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

⧪ चरण 2:फॉर-लूप के साथ मानों को स्वतः फ़िल्टर करना

इसके बाद, हम फॉर-लूप . के माध्यम से पुनरावृति करके मानों को स्वतः फ़िल्टर करेंगे ।

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).Range(Source_Range).Rows.Count
    If Worksheets(Source_Worksheet).Range(Source_Range).Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Range(Destination_Cell).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).Range(Source_Range).Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

इसलिए, संपूर्ण VBA कोड होगा:

⧭ वीबीए कोड:

Sub Autofilter_Values_from_Specific_Range()

Source_Worksheet = "Sheet3"
Source_Range = "B3:D15"

Destination_Worksheet = "Sheet3"
Destination_Cell = "F3"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).Range(Source_Range).Rows.Count
    If Worksheets(Source_Worksheet).Range(Source_Range).Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Range(Destination_Cell).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).Range(Source_Range).Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

End Sub

स्वत:फ़िल्टर करने का तरीका एक्सेल में VBA के साथ एक निश्चित मान के बराबर नहीं है

⧭ आउटपुट:

इनपुट बदलने के बाद कोड चलाएँ (गंतव्य कार्यपत्रक बनाना न भूलें पहले अगर यह अलग है, अन्यथा आपको त्रुटियों का अनुभव होगा।)

आपको अपने डेटा सेट के विशिष्ट कॉलम मिलेंगे (कॉलम 1 और 3 इस उदाहरण में) गंतव्य सेल में स्वतः फ़िल्टर किया गया (F3 इस उदाहरण में) गंतव्य कार्यपत्रक में केवल वे मान हैं जो निश्चित मान के बराबर नहीं हैं (F इस उदाहरण में)।

स्वत:फ़िल्टर करने का तरीका एक्सेल में VBA के साथ एक निश्चित मान के बराबर नहीं है

और पढ़ें: [फिक्स]:श्रेणी श्रेणी की स्वत:फ़िल्टर विधि विफल (5 समाधान)

याद रखने योग्य बातें

किसी नई कार्यपत्रक में मानों को स्वत:फ़िल्टर करने के लिए कोड चलाने से पहले, वह कार्यपत्रक बनाएं। अन्यथा, आप त्रुटियों का अनुभव करेंगे।

साथ ही, यहां हमने UsedRange . का उपयोग किया है VBA . की संपत्ति संपूर्ण कार्यपत्रक से मानों को स्वतः फ़िल्टर करने के लिए। इसके बारे में विस्तार से जानने के लिए इसे क्लिक करें।

निष्कर्ष

तो, यहां उन मानों को स्वत:फ़िल्टर करने के तरीके दिए गए हैं जो VBA का उपयोग करके एक निश्चित मान के बराबर नहीं हैं एक्सेल में। क्या आपका कोई प्रश्न है? बेझिझक हमसे पूछें। और हमारी साइट पर जाना न भूलें ExcelDemy अधिक पोस्ट और अपडेट के लिए।

संबंधित लेख

  • Excel VBA यह जांचने के लिए कि ऑटोफ़िल्टर चालू है या नहीं (4 आसान तरीके)
  • VBA ऑटोफिल्टर:सबसे छोटे से सबसे बड़े तक छाँटें (3 तरीके)
  • Excel VBA के साथ दृश्यमान पंक्तियों को ऑटोफ़िल्टर और कॉपी कैसे करें
  • Excel VBA:मौजूद होने पर ऑटोफ़िल्टर निकालें (7 तरीके)

  1. डुप्लिकेट मानों के साथ एक्सेल में संबंध कैसे बनाएं

    कई मौकों पर, हमें रिश्ते . बनाने की आवश्यकता हो सकती है एक्सेल में डुप्लिकेट . के साथ मान क्योंकि डेटासेट में एक सामान्य कॉलम होता है जिसका उपयोग किया जा सकता है। लेकिन अगर किसी तरह दोनों तालिकाओं में डुप्लिकेट . है मूल्यों, तब प्रक्रिया को निष्पादित करना काफी कठिन हो जाता है। यदि आप यह जानने के लि

  1. Excel में निश्चित मान वाले कक्षों को कैसे साफ़ करें (2 तरीके)

    उपयोगकर्ताओं को एक्सेल में काम करते समय एक निश्चित मूल्य वाले सेल को साफ करने की आवश्यकता हो सकती है। यह या तो एकल कक्ष या एकाधिक कक्ष . हो सकता है समान सेल मान के साथ। एक बड़े डेटा सेट में काम करते समय, एक-एक करके कोशिकाओं के माध्यम से कुछ मूल्यों को साफ़ करना समय लेने वाला और थकाऊ होता है। इसलिए,

  1. एक्सेल फॉर्मूला का उपयोग कैसे करें एक निश्चित मूल्य से अधिक न हो

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