2016-10-13 11 views
0

良い一日のための配列としては、オートフィルタのメソッドのための基準

を範囲を使用しますが、基準はコードに直接書かれた名前の配列で見ることができるように、私は次のコード

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の範囲の名前のリストを持っていると言うことができますどのように基準の配列としてその範囲を使用することができます

+2

を範囲は水平または転置する必要があります。あなたの配列の代わりに '.Range(" A1:K1 ").Valueまたは' Application.Transpose( "A1:A10")。value) ' –

答えて

2

ここでは3つのセルあなたはループを回避したい場合

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 

にSheet2のSheet1ので列をフィルタリングする

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 
関連する問題