Excel VBA使用高级筛选器的错误副本

时间:2014-03-31 06:38:25

标签: excel vba excel-vba

我试图通过Excel中的“高级过滤器”选项获取唯一数据列表。 所以,我录制了我想要做的宏,并将其作为代码:

Sheets("Totaal").Range("A3:A65000").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
    "D2"), Unique:=True

据我所知,这应该没问题,因为我这样做了几次。问题是,只有这一个,他只将第一个元素复制到选定的范围。 (我试着给它一个范围,但没有改变任何东西)。

因此,只复制第一个元素而不是整个数组。如果我手动完成它就可以了。

2 个答案:

答案 0 :(得分:0)

偶然发现这个非常有趣的问题。我创建了一个测试表来模仿你的样子:

start

以下代码从第2行开始将所有唯一条目删除到col D中:

Option Explicit
Sub Test()

Dim TotaalSheet As Worksheet

'set worksheet for easy reference
Set TotaalSheet = ThisWorkbook.Worksheets("Totaal")

'apply the advanced filter to get uniques
With TotaalSheet.Range("A3:A65000")
    .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=TotaalSheet.Range("D2"), Unique:=True
End With

End Sub

结果如下:

end

答案 1 :(得分:0)

如果该范围之上的许多空单元格之一,则不会复制任何内容。