2011-10-05 9 views
5

में मापदंड मैं अपने समस्या के काम किया है इस गंदे हैक का उपयोग करके:कई बहिष्कार कम्बाइन (<>) ऑटो फ़िल्टर

' Filter managerial functions 
    ActiveSheet.Range("$A$1:$BW$2211").AutoFilter Field:=36, Criteria1:="<>Head*", _ 
    Criteria2:="<>IT*", Operator:=XlAutoFilterOperator.xlAnd 
    ActiveSheet.Range("$A$1:$BW$2211").AutoFilter Field:=36, Criteria1:="<>Local Head*", _ 
    Criteria2:="<>Resp*", Operator:=XlAutoFilterOperator.xlAnd 
    ActiveSheet.Range("$A$1:$BW$2211").AutoFilter Field:=36, Criteria1:="<>Team Lead*", _ 
    Criteria2:="<>XB*", Operator:=XlAutoFilterOperator.xlAnd 

वहाँ एक लाइन में इन 3 बयान गठबंधन करने के लिए कोई तरीका है? जैसे ही मेरे पास एक पंक्ति में तीसरा मानदंड (मानदंड 3) है, एक्सेल में कोई समस्या है। इसके अलावा, <> ऐरे() समर्थित नहीं है।

उत्तर

1

इस उद्देश्य के लिए एक उन्नत फ़िल्टर अधिक उपयुक्त हो सकता है।

तुम भी कुछ इस तरह कर सकता है:

Dim bUnion As Boolean 
Dim i As Long 
Dim vData As Variant 
Dim rDataHide As Range 

vData = Application.Transpose(ActiveSheet.Range("$AJ$1:$AJ$2211")) 
bUnion = False 

For i = 1 To 2211 
    If LenB(vData(i)) Then 
    If vData(i) Like Whatever Or vData(i) Like Whatever2 Then 
     If bUnion Then 
     Set rDataHide = Union(rDataHide, ActiveSheet.Range("$AJ$" & i)) 
     Else 
     Set rDataHide = ActiveSheet.Range("$AJ$" & i) 
     bUnion = True 
     End If 
    End If 
    End If 
Next i 
rDataHide.Rows.Hidden = True 

तुम भी रेगुलर एक्सप्रेशन से इस्तेमाल कर सकते हैं, मैं वास्तव में रेगुलर एक्सप्रेशन से ज्यादा से पहले हालांकि ताकि आप इसे गूगल करना होगा उपयोग नहीं किया है।

+0

AFAIK, मुझे उन्नत फ़िल्टर का उपयोग करने के लिए अपने वर्कशीट में एक रेंज की आवश्यकता है। मैं एक सरणी में सभी मानदंडों के साथ शुद्ध वीबीए कोड रखना पसंद करता हूं (जो <> के लिए काम नहीं करता है)। – denisq

+1

यदि आवश्यक हो तो आप वीबीए के साथ उन्नत फ़िल्टर रेंज बना सकते हैं। या यहां तक ​​कि केवल एक परीक्षण या कॉलम के साथ एक वर्किंग कॉलम जोड़ें, ऑटोफिल्टर, फिर – brettdj

+0

समाप्त होने पर काम करने वाले कॉलम को नष्ट करें, जब मैं उन्नत फ़िल्टर का उपयोग करता हूं तो ब्रेट्डजे करता है, फ़िल्टर रेंज बनाएं और उसके बाद इसे हटाए जाने के बाद इसे हटा दें। आप संपादित उत्तर में ऊपर जो भी डालते हैं उसे भी आजमा सकते हैं। – Jon49

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