具有唯一参数集的Range.AdvancedFilter与第一个值重复

时间:2018-11-30 15:48:11

标签: excel vba excel-vba

我正在尝试使用Range.AdvancedFilter方法将唯一值复制到单独的列。 对于除第一个值以外的所有值,此方法均有效。但是,第一个值总是重复的:

'Determine source range
With Worksheets("Test")
    Set SrcRng = .Range(.Cells(2, 1), .Cells(.UsedRange.Rows.Count, 1))
End With

'Determine target range
With Worksheets("Test")
    Set TrgtRng = .Range(.Cells(2, 2), .Cells(2, 2))
End With

'Filter copy (unique values only) values from source to target range
SrcRng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=TrgtRng, Unique:=True

使用上面的代码将得到以下结果:

+--------+--------+
| Source | Target |
+--------+--------+
| test   | test   |
| test2  | test2  |
| test   | test   |
| test3  | test3  |
| test2  |        |
| test3  |        |
| test   |        |
+--------+--------+

我不太明白为什么它会在第3行中再次复制值“ test”。

关于如何解决此问题的任何想法?最初似乎找不到解决方案或原因。 提前非常感谢!

1 个答案:

答案 0 :(得分:1)

过滤器需要一个标头行,您不提供该标头行,因此它将第一行视为标头,因此可以进行复制。