独特的记录过滤器

Unique Record Filter

我编写代码对作品sheet 列执行唯一记录筛选,并将每一列(筛选后)复制到新作品sheet。当前代码如下所示:

sub Test()
Worksheets.Add(After:=Worksheets(3)).Name = "Unique Filter"

For i = 1 To 12
    Sheets("Sheet3").Columns(i).Copy Sheets("Unique Filter").Columns(i)
Next

Worksheets("Unique Filter").Activate

For i = 1 To 12
    Columns(i).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Next

End sub

它在当前作品之后创建了一个新作品sheet(这是我工作簿中的作品sheet 3)。

宏给我留下了新的 Excel "Unique Filter" 如下,看起来不对:(在 [=22= 的原始 10K 行中应该有大约 600 条唯一记录] 3,而不是 1)

您可能想跳过最初的 copy-paste,而是使用高级过滤器的 copy-paste 功能。如果我不这样做,我总是会得到意想不到的结果——隐藏的行等等。可能都是可以解释的,但我从未研究过它并发现这是一个更快的解决方案。

所以 - 稍微修改一下代码...

sub Test()
Worksheets.Add(After:=Worksheets(3)).Name = "Unique Filter"

For i = 1 to 12
Sheets("Sheet3").Columns(i).AdvancedFilter _
    xlFilterCopy, , Sheets("Unique Filter").Columns(i), True
Next

End Sub