2017-06-01 4 views
0

Ich möchte einen Bereich filtern basierend auf einem Zellenwert:Filterkriterien basierend auf Zellwert

Es funktioniert:

ThisWorkbook.Worksheets("Cost Table").Range("$A$38:$O$68").AutoFilter Field:=2, Criteria1:=Array("LATAM", "NOAM"), Operator:=xlFilterValues 

funktioniert nicht:

ThisWorkbook.Worksheets("Cost Table").Range("$A$38:$O$68").AutoFilter Field:=2, Criteria1:=ThisWorkbook.Worksheets("Cost Table").Range("Q100").Value, Operator:=xlFilterValues 

Q100 = "LATAM", "NOAM" 

Was ist der gewünschte Eingabe für Kriterien?

+0

Ist '" LATAM "," NOAM "' der genaue Wert in 'Q100'? –

+0

Ja, ich habe es bereits ohne Anführungszeichen und mit doppelten Anführungszeichen versucht. – Erika

Antwort

0

Sie müssen ein Array erstellen, wenn Sie mehr als einen Wert anwenden möchten.

dim crit() as string 
crit = split(ThisWorkbook.Worksheets("Cost Table").Range("Q100").Value, ",") 
ThisWorkbook.Worksheets("Cost Table").Range("$A$38:$O$68").AutoFilter Field:=2 Criteria1:=crit, Operator:=xlFilterValues 

N.B. Wenn Ihr Handy Q100 Anführungszeichen enthält, müssen Sie es loswerden:

crit = split(replace(ThisWorkbook.Worksheets("Cost Table").Range("Q100").Value, """",""), ",") 
+0

Warum aktualisieren Sie Ihre Antwort zu zeigen, die Anführungszeichen zu entfernen - das würde es eine richtige Antwort machen –

+0

@FunThomas: danke, es funktioniert wie erwartet! – Erika

+0

@ Robin Mackenzie: Da normalerweise keine Anführungszeichen in einer Zelle sind, siehe Erikas Kommentar – FunThomas

1

Sie LATAM in Q100 setzen können NOAM in Q101 sind (beide ohne Anführungszeichen) und Criteria1:=ThisWorkbook.Worksheets("Cost Table").Range("Q100:Q101").Value als Kriterien verwenden.

Verwandte Themen