2017-08-14 5 views
1

J'essaie de filtrer une liste en fonction des valeurs de plusieurs cellules sur un autre onglet, mais je n'arrive pas à le faire fonctionner correctement.Filtre VBA par plusieurs cellules

C'est ce que je suis:

ActiveSheet.Range("$A$2:$Y$129").AutoFilter Field:=13, 
Criteria1:=Range("Formulas!A8:A10").Value 

le problème est que cela fonctionne avec 1 pile, mais pas multiple comme je l'ai essayé de le faire avec la gamme A8: A10. Le code tel qu'il est maintenant ne filtre que sur la dernière cellule définie, à savoir A10, au lieu de toute la gamme.

Qu'est-ce que je fais de mal?

Répondre

0

Utilisez une variable de tableau, j'ai utilisé FiltArr et stocker toutes les valeurs de votre plage que vous souhaitez filtrer.

Dim FiltArr As Variant 

' add all range values to array, use Transpose to get a 1-D array 
FiltArr = Application.Transpose(Worksheets("Formulas").Range("A8:A10").Value) 

ActiveSheet.Range("A2:Y129").AutoFilter Field:=13, Criteria1:=FiltArr, Operator:=xlFilterValues