after learning a lot i figurred it out, this does not work with arrays BUT i does work with diccionaries keys, so what i needed to do was to build a dictionary with all the entreys that i want to filter out.
Dim dicCriteria As Object
Dim ColumToFilter As Variant
Dim i As Long
Set dicCriteria = CreateObject("Scripting.Dictionary")
dicCriteria.CompareMode = 1 'vbTextCompare
'this is just how i find the specific range to filter out
With Range(Cells(2, LookFor_ColNum), Cells(lastrow, LookFor_ColNum))
ColumToFilter = .Cells.Value
For i = 1 To UBound(ColumToFilter, 1)
If Not dicCriteria.Exists(ColumToFilter(i, 1)) Then
Dim k As Integer
For k = LBound(words) To UBound(words)
Select Case True
Case ColumToFilter(i, 1) Like words(k)
dicCriteria.Add Key:=ColumToFilter(i, 1), Item:=ColumToFilter(i, 1)
End Select
Next k
End If
Next i
here i am creating an empty dictionary called dicCriteria
then i am getting the values of the column i want to filter into an array called ColumntoFilter
now i go though every value in the array and i check, first if its already on the dictionary, then if its not now i go whogh the array i called words
and i check if its like any of the values in that array, if it is then i add the current Columntofilter value into the dictionary, as both the key and the item
by the end i end up with a dictonary populated with all the entreys that matched the criteria.
now i just need to filter using the dictionary keys
If CBool(dicCriteria.Count) Then
.AutoFilter Field:=LookFor_ColNum, Criteria1:=dicCriteria.keys, Operator:=xlFilterValues
End If
and thats it ahah a bit longer than expected but it works