शुभ दिवस,

मेरे पास निम्न कोड है

Sub AutFilCrit()



With Worksheets("Email Campaign Stats")
                .AutoFilterMode = False
                .Range("A6:AP6").AutoFilter
                .Range("A6:AP6").AutoFilter Field:=5, Criteria1:=Array("OARGUELLO", "KARAUZ", "LBALLADARES"), Operator:=xlFilterValues


End With
End Sub

जैसा कि आप देख सकते हैं मानदंड सीधे कोड में लिखे गए नामों की एक सरणी है। मेरा प्रश्न है: मान लें कि मेरे पास श्रेणी A1:A10 या A1:K1 में नामों की एक सूची थी, मैं मानदंड के लिए सरणी के रूप में उस श्रेणी का उपयोग कैसे कर सकता हूं

1
Tom Ruiz 13 अक्टूबर 2016, 22:42
2
सीमा को क्षैतिज या स्थानांतरित करने की आवश्यकता है। इसलिए अपनी सरणी के स्थान पर .Range("A1:K1").Value या Application.Transpose(.Range("A1:A10").value) डाल दें
 – 
Scott Craner
13 अक्टूबर 2016, 22:50

1 उत्तर

सबसे बढ़िया उत्तर

यहां एक उदाहरण दिया गया है जो पत्रक2 में तीन कक्षों से एक सरणी बनाता है ताकि पत्रक1 में किसी स्तंभ को फ़िल्टर किया जा सके:

Sub UsingARange()
    Dim arr(1 To 3) As String
    For i = 1 To 3
        arr(i) = Sheets("Sheet2").Cells(i, 1).Value
    Next i

    With Sheets("Sheet1").Range("A1:A9")
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues
    End With
End Sub

यदि आप लूप से बचना चाहते हैं:

Sub UsingARange2()
    Dim rng As Range

    Set rng = Sheets("Sheet2").Range("A1:A3")
    arr = Application.WorksheetFunction.Transpose(rng.Value)
    With Sheets("Sheet1").Range("A1:A9")
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues
    End With
End Sub
3
Gary's Student 13 अक्टूबर 2016, 23:02