2016-05-13 5 views
0

Ich habe versucht, einen automatischen Filter auf mein Excel-Arbeitsblatt anzuwenden, und ich versuche herauszufinden, wie nur bestimmte Kriterienwerte angezeigt werden.Excel Auto Filter Kriterien Wert wird falsch eingestellt?

Der folgende Code, den viele vorschlagen, sollte erreichen, was ich will. https://msdn.microsoft.com/en-us/library/office/ff193884.aspx

Der Code ausgeführt wird, aber es wählt nicht die in der Matrix aufgeführten Kriterien:

Expression.Range(A1:G1).Autofilter(5, '=Array("value", "value")', xlFilterValues, None, True) 

Die folgende Dokumentation ist hier zu finden. Wenn ich die Arbeitsmappe öffnen und sehen Sie die benutzerdefinierten Filter zeigt es diesen Wert neben dem Gleichheits Dropdown-Menü:

= Array („Wert“, „Wert“)

Wie wäre es also gehe ich immer Die Werte, die ausgewählt und angezeigt werden, würden Sie manuell übertreffen? Die einzige Lösung, die ich finden kann, ist die Array-Funktion, aber ich habe kein Glück damit.

+0

Ich denke, die Syntax in Ihrem Beitrag ist ein wenig aus. Probiere 'Expression.Range (" A1: G1 "). AutoFilter 5, Array (" Wert "," Wert "), xlFilterValues, None, True' –

+0

Ja, ich wurde etwas faul und habe die Anführungszeichen nicht hinzugefügt. – Temptex

+1

Wenn es nur die 2 Werte sind, warum nicht den Operator 'xlAnd' verwenden? –

Antwort

2

Hier ist ein Weg, um die Criteria als Array zu setzen:

Sub qwerty() 
    Dim Expression As Range 

    Set Expression = Range("A1:G1") 
    ary = Array("value1", "value2") 
    Expression.AutoFilter 5, ary, xlFilterValues, None, True 
End Sub 

Während dies funktioniert, ich es nie tun diese Weise (ich immer die Parameter nennen).

+0

Vielen Dank, ich bin mir sicher, dass ich das früher versucht habe, aber anstatt das ganze Array zu übergeben, habe ich beschlossen, jeden Index im Array durchzulaufen, der nicht funktioniert hat. – Temptex

Verwandte Themen