2016-05-07 15 views
5

मैं उस मैक्रो पंक्तियों जिसके लिए कॉलम ए और बी के बराबर हैं को महत्व देता है फिल्टर की जरूरत है, या जो एक ही, अंतर नहीं है जो है 0.2 कॉलम मूल्यों (एक ही पंक्ति में) की तुलना करें

आम तौर पर मैं के लिए स्वत: फ़िल्टर लागू एक भी रेंज, इस तरह:

ActiveSheet.Range("A2:AX2").AutoFilter Field:=Range("X" & 1).Column, Criteria1:=">0"

इस मामले मैं एक फिल्टर से मेल खाते या 2 कॉलम तुलना और लागू करने के लिए जब A-B=0

बेशक

मैं एक स्तंभ जोड़ सकते हैं के बीच का अंतर दिखाना चाहते हैं ये 2, लेकिन अगर मैं इसे टालना पसंद कर सकता हूं।

पीएस: बाद में, मुझे A-B-C=0 के लिए एक और फ़िल्टर की आवश्यकता होगी, यदि आपका समाधान भी इस फिट बैठता है।

उत्तर

0

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

केवल एक चीज जो मैं सोच सकता था सशर्त स्वरूपों का उपयोग कर रहा है और फिर रंगों द्वारा फ़िल्टरिंग कर रहा है।

उदाहरण:

enter image description here

Sub Makro1() 

sConditionalFormula = "=AND($A1<>"""",$B1<>"""",$A1=$B1)" 
'FormatConditions needs localized formulas, so we create such: 
Cells(Rows.Count, Columns.Count).Formula = sConditionalFormula 
sConditionalFormulaLocal = Cells(Rows.Count, Columns.Count).FormulaLocal 
Cells(Rows.Count, Columns.Count).Clear 

With ActiveSheet 

    With .Range("A1").CurrentRegion 
    .FormatConditions.Delete 
    .FormatConditions.Add Type:=xlExpression, Formula1:=sConditionalFormulaLocal 
    With .FormatConditions(.FormatConditions.Count) 
    With .Interior 
    .Color = RGB(255, 255, 0) 
    End With 
    End With 

    .AutoFilter Field:=1, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor 

    End With 

End With 

End Sub 

परिणाम:

enter image description here

2

बस Range.AutoFilter Method पर कॉलम और मानदंड निर्दिष्ट करने वाली दूसरी पंक्ति जोड़ें।

With Worksheets("Sheet1") 
    'if there is an active AutoFilter, turn it off 
    If .AutoFilterMode Then .AutoFilterMode = False 

    With .Cells(1, 1).CurrentRegion 
     .AutoFilter field:=1, Criteria1:=0 
     .AutoFilter field:=2, Criteria1:=0 

     'filtered on rows that have zero in column A and column B 

     .AutoFilter field:=1 
     .AutoFilter field:=2 

     'filter is active but no criteria has been applied 

     .AutoFilter field:=1, Criteria1:=0 
     .AutoFilter field:=2, Criteria1:=0 
     .AutoFilter field:=3, Criteria1:=0 

     'filtered on rows that have zero in column A, column B and column C 

    End With 
    'turn off AutoFilter completely 
    If .AutoFilterMode Then .AutoFilterMode = False 
End With 
+0

Jeeped प्रकाश की गति से कोड! –

+0

tbh, मैं थोड़ा चिंतित हूं कि एचटी ओपी का कोड शुरू होता है .ऑटोफिल्टर पंक्ति 2 में। कॉलम हेडर लेबल पंक्ति 2 में बहुत अच्छी तरह से हो सकता है, मैंने लोगों को कोड भी देखा है .ऑटोफिल्टर गलत तरीके से और केवल डेटा हिस्से को शामिल करता है जब .AutoFilter ** ** कॉलम हेडर लेबल की एक पंक्ति की आवश्यकता है। [Range.CurrentRegion प्रॉपर्टी] (https://msdn.microsoft.com/en-us/library/office/ff196678.aspx) को बिल्कुल सही होने के लिए एक पंक्ति को स्थानांतरित करना होगा। – Jeeped

+0

स्प्रेडशीट लेआउट/उदाहरण दिनांक के स्निपेट को शामिल करने का महत्व। –

संबंधित मुद्दे