Try something like this one
Code:
Sub FilterTest()
Dim BaseArray(4) As String
Dim Criteria(2) As String
Dim IgnoreCase As Boolean
Dim FinalArray As Variant
IgnoreCase = True
BaseArray(0) = "A1"
BaseArray(1) = "B1"
BaseArray(2) = "C1"
BaseArray(3) = "D1"
BaseArray(4) = "E1"
Criteria(0) = "A"
Criteria(1) = "B"
Criteria(2) = "C"
FinalArray = FilterStrings(BaseArray, Criteria, IgnoreCase)
End Sub
Function FilterStrings(BaseArray As Variant, Criteria As Variant, IgnoreCase As Boolean) As Variant
Dim itm As String
Dim citm As String
Dim i As Integer, j As Integer, cnt As Integer
Dim FinalArray() As Variant
For i = LBound(BaseArray) To UBound(BaseArray)
itm = BaseArray(i)
For j = LBound(Criteria) To UBound(Criteria)
citm = IIf(IgnoreCase, Criteria(j), UCase(Criteria(j)))
If IIf(IgnoreCase, UCase(itm) Like UCase(citm & "*"), itm Like citm & "*") Then
ReDim Preserve FinalArray(cnt)
FinalArray(cnt) = itm
cnt = cnt + 1
Exit For
End If
Next
Next
FilterStrings = FinalArray
End Function
~'J'~