私はそれを理解したと信じています。私はすべて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
どのような結果が見込まれますか? – QHarr
@QHarr理想的には、イミディエイトウィンドウに逐語的に含まれたコードを印刷したいと思います。 –
私はすぐにそれをそのまま印刷することはできないと思います。それは文字列である必要があります。 – QHarr