I don't believe it's possible to filter directly to an array variable. The help says CopyToRange Optional Variant. The destination range for the copied rows if Action is xlFilterCopy.
My first thought was to use your code and then use SpecialCells to just populate the array. However, this only seemed to pick up the first cell of each area in the visible range. My next attempt, which seems to work, is just to filter the range and copy it below the list and then use that new list to populate the array. Is that clear?!
Anyway, here's the code I used:-
Obviously, you could get rid of the hard coded references and use more sophisticated methods to find the start and end of your ranges.Code:Sub CopyToRange() Dim Array1 Range("A1:A5474").AdvancedFilter Action:=xlFilterCopy, Unique:=True, CopyToRange:=Range("A6000") Array1 = Range("A6000:A" & Range("A65536").End(xlUp).Row).Value Range("A6000:A65536").Clear 'Get rid of the filtered data End Sub