Range()。AdvancedFilter忽略第一行?

TLDR:sortingalgorithm忽略(关于唯一性),只是复制第一个值?

下面的代码

Sub test() ActiveSheet.Range("A1:A7").AdvancedFilter _ Action:=xlFilterCopy, CopyToRange:=ActiveSheet.Range("B1"), _ Unique:=True End Sub 

筛选以下行:

 A1 to A7: 1 1 2 3 4 1 2 

至:

 1 1 2 3 4 

我试着用文本,不同的起始行,sorting,而不是复制到另一个范围,但在我看来,好像第一个值只是复制,而不是与任何东西相比是唯一的。

这似乎应该是非常简单的,但我不知道我在这里做错了什么。 主页在这里没有提到任何东西。 有人能重现这种行为吗?

结果应该是范围A1:A7是唯一过滤(sorting顺序不重要):

 1 2 3 4 

您可以在列B上使用RemoveDuplicates

 ActiveSheet.Range("A1:A7").Copy ActiveSheet.Range("B1") ActiveSheet.Range("B1:B" & Cells(Rows.Count, "B").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlNo 

当然,不需要使用ActiveSheet ,最好使用完全限定的Worksheets

 With Worksheets("YourSheetName") .Range("A1:A7").Copy .Range("B1") .Range("B1:B" & .Cells(.Rows.Count, "B").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlNo End With