2017-11-27 1 views
0

직접 실행 창에 자동 필터 배열 인쇄에 관심이 있습니다. 다음과 같이 열을 필터링하면서 매크로를 기록하여 수동으로 캡처 할 수 있습니다.직접 실행 창에 자동 필터 배열 인쇄

ActiveSheet.Range("$A$1:$AF$1191").AutoFilter Field:=5, Criteria1:=Array(_ 
    "3", "4", "5"), Operator:=xlFilterValues 

모든 조언을 크게 주시면 감사하겠습니다.

+0

어떤 결과가 나타 났습니까? – QHarr

+0

@QHarr 이상 적으로, 직접 포함 된 코드를 직접 실행 창에 인쇄하고 싶습니다. –

+0

나는 즉시 인쇄 할 수 있다고 생각하지 않습니다. 문자열이어야합니다. – QHarr

답변

0

나는 그것을 알아 냈다고 생각합니다. 모든 operators을 처리하기 위해이를 업데이트해야하지만, 지금까지 내가 가지고있는 것입니다.

Sub PrintFilters() 

    Dim ws As Worksheet 
    Set ws = ThisWorkbook.ActiveSheet 

    Dim wsn As String 
    wsn = ws.Name 

    Dim LastCol As Integer 
    LastCol = ws.UsedRange.Columns.Count 

    Dim AllCrit As Variant 
    Dim CritVar As Variant 
    Dim CritString As String 

    Dim i As Integer 

    For i = 1 To LastCol 

    On Error Resume Next 

    With ws.AutoFilter.Filters(i) 

     Select Case .Operator 

      Case Is = 7 'xlFilterValues 
       For Each CritVar In .Criteria1 
        AllCrit = AllCrit & Chr(44) & Chr(34) & Mid(CritVar, 2) & Chr(34) 
        CritString = AllCrit 
        CritString = Replace(CritString, Chr(44), "", 1, 1) 
       Next 
       Debug.Print "ThisWorkBook.Sheets(" & Chr(34) & wsn & Chr(34) & Chr(41) & ".UsedRange.Autofilter Field:=" & i & Chr(44) & "Criteria1:=Array(" & CritString & ")," & "Operator:=xlFilterValues" 

      Case Is = 2 'xlOr 
       Debug.Print "ThisWorkBook.Sheets(" & Chr(34) & wsn & Chr(34) & Chr(41) & ".UsedRange.Autofilter Field:=" & i & Chr(44) & "Criteria1:=" & Chr(34) & Mid(.Criteria1, 2) & Chr(34) & Chr(44) & "Operator:=xlOr" & Chr(44) & ("Criteria2:=" & Chr(34) & Mid(.Criteria2, 2)) & Chr(34) 

      Case Is = 0, 1 'other cases/xlAnd 
       Debug.Print "ThisWorkBook.Sheets(" & Chr(34) & wsn & Chr(34) & Chr(41) & ".UsedRange.Autofilter Field:=" & i & Chr(44) & "Criteria1:=" & Chr(34) & Mid(.Criteria1, 1) & Chr(34) 

     End Select 

    End With 

    AllCrit = Nothing 
    Next i 

End Sub